Gambaran Keseluruhan Pengendali Bitwise
Operator adalah simbol yang memerintahkan penyusun untuk melakukan operasi matematik atau logik tertentu. Terdapat beberapa jenis operator di C ++, seperti:
- Pengendali Aritmetik
- Pengendali Logik
- Pengendali Perhubungan
- Pengendali Tugasan
- Pengendali Bitwise
- Pelbagai Pengendali
Semua pengendali Bitwise berfungsi pada tahap bit individu. Pengendali bitwise hanya dapat digunakan untuk jenis data bilangan bulat dan watak. Sebagai contoh, jika anda mempunyai pemboleh ubah jenis integer dengan ukuran 32 bit dan anda menggunakan operasi NOT bitwise, operator NOT bitwise akan digunakan untuk semua 32 bit. Jadi, akhirnya, semua 32 bit dalam pemboleh ubah akan terbalik.
Terdapat enam operator bitwise berbeza yang terdapat di C ++:
- Bitwise ATAU [ditunjukkan sebagai "|"]
- Bitwise AND [diwakili sebagai "&"]
- Bitwise TIDAK [diwakili sebagai "~"]
- Bitwise XOR [diwakili sebagai "^"]
- Bitwise Left Shift [diwakili sebagai “<<”]
- Bitwise Right Shift [diwakili sebagai ">>"]
Jadual Keberanian ATAU Kebenaran
Pengendali Bitwise OR menghasilkan 1 apabila sekurang-kurangnya satu operan ditetapkan ke 1. Berikut adalah jadual kebenaran untuk pengendali Bitwise ATAU:
Bit-1 | Bit-2 | Bit-1 | Bit-2 |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 1 |
Jadual Bitwise DAN Kebenaran
Pengendali bitwise AND menghasilkan 1 apabila kedua-dua operan ditetapkan ke 1. Berikut adalah jadual kebenaran untuk pengendali Bitwise AND:
Bit-1 | Bit-2 | Bit-1 & Bit-2 |
---|---|---|
0 | 0 | 0 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
Jadual Kebenaran TIDAK Sedikit demi sedikit
Pengendali bitwise NOT membalikkan operasi. Berikut adalah jadual kebenaran untuk pengendali Bitwise NOT:
Bit-1 | ~ Bit-1 |
---|---|
0 | 1 |
1 | 0 |
Jadual Kebenaran Bitwise XOR
Pengendali bitwise XOR menghasilkan 1 jika, dan hanya jika, salah satu operasi ditetapkan ke 1. Berikut adalah jadual kebenaran untuk pengendali Bitwise AND:
Bit-1 | Bit-2 | Bit-1 ^ Bit-2 |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
Pengendali Peralihan Kiri Bitwise
Pengendali Bitwise Left Shift mengalihkan semua bit yang ditinggalkan mengikut bilangan bit yang ditentukan. Sekiranya anda menggeser semua bit data dengan 1, data asal akan dikalikan dengan 2. Begitu juga, jika anda menggeser semua bit data dengan 2, data asal akan dikalikan dengan 4.
Pengendali Peralihan Kanan Bitwise
Pengendali Bitwise Right Shift mengalihkan semua bit ke kanan dengan bilangan bit yang ditentukan. Sekiranya anda menggeser semua bit data dengan betul ke 1, data asal akan dibahagi (pembahagian integer) dengan 2. Begitu juga, jika anda menggeser ke kanan semua bit data dengan 2, data asal akan dibahagi (pembahagian integer) dengan 4.
Contoh
Sekarang, kerana kita telah memahami konsep asas operasi bitwise, mari kita lihat beberapa contoh, yang akan membantu anda memahami operasi bitwise di C ++:
- Contoh-1: Bitwise ATAU Operator
- Contoh-2: Bitwise DAN Operator
- Contoh-3: Bitwise BUKAN Operator
- Contoh-4: Pengendali Bitwise XOR
- Contoh-5: Pengendali Pergeseran Kiri Bitwise
- Contoh-6: Operator Pergeseran Kanan Bitwise
- Contoh-7: Tetapkan Bit
- Contoh-8: Clear Bit
Contoh-7 dan 8 adalah untuk menunjukkan penggunaan dunia nyata operator bitwise dalam bahasa pengaturcaraan C ++.
Contoh-1: Bitwise ATAU Operator
Dalam program contoh ini, kami akan menunjukkan pengendali Bitwise OR.
#sertakan#sertakan
#sertakan
menggunakan ruang nama std;
// fungsi paparan ()
paparan kosong (string print_msg, int number)
bit<16> myBitSet (nombor);
cout << print_msg;
cout << myBitSet.to_string() << " (" << myBitSet.to_ulong() << ") " << endl;
int utama ()
int first_num = 7, second_num = 9, hasil = 0;
// Operasi Bitwise ATAU
hasil = first_num | nombor_ kedua;
// cetak nombor input
cout << endl;
paparan ("First Number is =", first_num);
paparan ("Nombor Kedua adalah =", angka_ kedua);
// mencetak nilai output
paparan ("first_num | second_num =", hasil);
cout << endl;
pulangan 0;
Contoh-2: Bitwise DAN Operator
Dalam program contoh ini, kami akan menggambarkan pengendali Bitwise AND.
#sertakan#sertakan
#sertakan
menggunakan ruang nama std;
// fungsi paparan ()
paparan kosong (string print_msg, int number)
bit<16> myBitSet (nombor);
cout << print_msg;
cout << myBitSet.to_string() << " (" << myBitSet.to_ulong() << ") " << endl;
int utama ()
int first_num = 7, second_num = 9, hasil = 0;
// Bitwise DAN operasi
hasil = first_num & second_num;
// cetak nombor input
cout << endl;
paparan ("First Number is =", first_num);
splay ("Nombor Kedua adalah =", second_num);
// mencetak nilai output
paparan ("first_num & second_num =", hasil);
cout << endl;
pulangan 0;
Contoh-3: Bitwise BUKAN Operator
Dalam program contoh ini, kita akan memahami bagaimana pengendali Bitwise NOT berfungsi di C++.
#sertakan#sertakan
#sertakan
menggunakan ruang nama std;
// fungsi paparan ()
paparan kosong (string print_msg, int number)
bit<16> myBitSet (nombor);
cout << print_msg;
cout << myBitSet.to_string() << " (" << myBitSet.to_ulong() << ") " << endl;
int utama ()
int first_num = 7, second_num = 9, hasil_1 = 0, hasil_2 = 0;
// Bitwise TIDAK beroperasi
hasil_1 = ~ first_num;
hasil_2 = ~ second_num;
// mencetak nombor input dan nilai output
cout << endl;
paparan ("First Number is =", first_num);
paparan ("~ first_num =", result_1);
cout << endl;
// mencetak nombor input dan nilai output
paparan ("Nombor Kedua adalah =", second_num);
paparan ("~ second_num =", result_2);
cout << endl;
pulangan 0;
Contoh-4: Pengendali Bitwise XOR
Program ini bertujuan untuk menerangkan bagaimana pengendali Bitwise XOR berfungsi di C++.
#sertakan#sertakan
#sertakan
menggunakan ruang nama std;
// fungsi paparan ()
paparan kosong (string print_msg, int number)
bit<16> myBitSet (nombor);
cout << print_msg;
cout << myBitSet.to_string() << " (" << myBitSet.to_ulong() << ") " << endl;
int utama ()
int first_num = 7, second_num = 9, hasil = 0;
// Operasi Bitwise XOR
hasil = first_num ^ second_num;
// cetak nombor input
cout << endl;
paparan ("First Number is =", first_num);
paparan ("Nombor Kedua adalah =", angka_ kedua);
// mencetak nilai output
paparan ("first_num ^ second_num =", hasil);
cout << endl;
pulangan 0;
Contoh-5: Pengendali Pergeseran Kiri Bitwise
Sekarang, kita akan melihat contoh pengendali Bitwise Left Shift. Dalam program ini, kami telah menyatakan dua nombor, nombor_ pertama dan bilangan_ bilangan bulat. Di sini, “first_num” dibiarkan kiri satu bit, dan “second_num” digeser ke kiri oleh dua bit.
#sertakan#sertakan
#sertakan
menggunakan ruang nama std;
// fungsi paparan ()
paparan kosong (string print_msg, int number)
bit<16> myBitSet (nombor);
cout << print_msg;
cout << myBitSet.to_string() << " (" << myBitSet.to_ulong() << ") " << endl;
int utama ()
int first_num = 7, second_num = 9, hasil_1 = 0, hasil_2 = 0;
// Operasi Bitwise Left Shift
hasil_1 = bilangan_ pertama << 1;
hasil_2 = angka_ kedua << 2;
// mencetak nombor input dan nilai output
cout << endl;
paparan ("First Number is =", first_num);
paparan ("first_num" << 1 = ", result_1);
cout << endl;
// mencetak nombor input dan nilai output
paparan ("Nombor Kedua adalah =", angka_ kedua);
paparan ("second_num << 2 = ", result_2);
cout << endl;
pulangan 0;
Contoh-6: Operator Pergeseran Kanan Bitwise
Sekarang, kita akan melihat contoh lain untuk memahami pengendali Bitwise Right Shift. Kami telah menyatakan dua nombor, nombor_ pertama dan bilangan_ bilangan bulat. Di sini, “first_num” digeser ke kanan oleh satu bit, dan “second_num” digeser ke kanan oleh dua bit.
#sertakan#sertakan
#sertakan
menggunakan ruang nama std;
// fungsi paparan ()
paparan kosong (string print_msg, int number)
bit<16> myBitSet (nombor);
cout << print_msg;
cout << myBitSet.to_string() << " (" << myBitSet.to_ulong() << ") " << endl;
int utama ()
int first_num = 7, second_num = 9, hasil_1 = 0, hasil_2 = 0;
// Operasi Bitwise Right Shift
hasil_1 = nombor_ pertama >> 1;
hasil_2 = second_num >> 2;
// mencetak nombor input dan nilai output
cout << endl;
paparan ("First Number is =", first_num);
paparan ("first_num >> 1 =", hasil_1);
cout << endl;
// mencetak nombor input dan nilai output
paparan ("Nombor Kedua adalah =", second_num);
paparan ("second_num >> 2 =", result_2);
cout << endl;
pulangan 0;
Contoh-7: Tetapkan Bit
Contoh ini bermaksud menunjukkan cara menetapkan bit tertentu menggunakan operator bitwise.
#sertakan#sertakan
#sertakan
menggunakan ruang nama std;
// fungsi paparan ()
paparan kosong (string print_msg, int number)
bit<16> myBitSet (nombor);
cout << print_msg;
cout << myBitSet.to_string() << " (" << myBitSet.to_ulong() << ") " << endl;
int utama ()
int first_num = 7, second_num = 9;
// cetak nombor input - first_num
cout << endl;
paparan ("First Number is =", first_num);
// Tetapkan bit ke-5
first_num | = (1UL << 5);
// Hasil cetak
paparan ("Tetapkan bit ke-5 first_num =", first_num);
cout << endl;
// cetak nombor input - second_num
cout << endl;
paparan ("Nombor Kedua adalah =", second_num); // Tetapkan bit ke-6
bilangan_nama | = (1UL << 6);
// Hasil cetak
paparan ("Tetapkan bit ke-6 second_num =", second_num);
cout << endl;
pulangan 0;
Contoh-8: Clear Bit
Contoh ini bermaksud menunjukkan cara membersihkan bit tertentu menggunakan operator bitwise.
#sertakan#sertakan
#sertakan
menggunakan ruang nama std;
// fungsi paparan ()
paparan kosong (string print_msg, int number)
bit<16> myBitSet (nombor);
cout << print_msg;
cout << myBitSet.to_string() << " (" << myBitSet.to_ulong() << ") " << endl;
int utama ()
int first_num = 7, second_num = 9;
// cetak nombor input - first_num
cout << endl;
paparan ("First Number is =", first_num);
// Kosongkan bit ke-2
first_num & = ~ (1UL << 2);
// Hasil cetak
paparan ("Tetapkan bit ke-2 first_num =", first_num);
cout << endl;
// cetak nombor input - second_num
cout << endl;
paparan ("Nombor Kedua adalah =", angka_ kedua);
// Kosongkan bit ke-3
second_num & = ~ (1UL << 3);
// Hasil cetak
paparan ("Tetapkan bit ke-3 second_num =", second_num);
cout << endl;
pulangan 0;
Kesimpulannya
Pengendali bitwise terutamanya digunakan untuk memanipulasi bit individu untuk jenis data integer dan watak. Pengendali bitwise banyak digunakan dalam pengembangan perisian tertanam. Oleh itu, jika anda mengembangkan pemacu peranti atau sistem yang hampir dengan tahap perkakasan, anda mungkin ingin menggunakan operator bitwise ini.