C ++

Pengendali Bitwise C ++

Pengendali Bitwise C ++
Dalam artikel ini, kita akan membincangkan pengendali bitwise dalam bahasa pengaturcaraan C ++. Kami akan melihat beberapa contoh kerja untuk memahami operasi bitwise secara terperinci. Dalam C ++, pengendali bitwise bekerja pada tahap bit individu.

Gambaran Keseluruhan Pengendali Bitwise

Operator adalah simbol yang memerintahkan penyusun untuk melakukan operasi matematik atau logik tertentu. Terdapat beberapa jenis operator di C ++, seperti:

  1. Pengendali Aritmetik
  2. Pengendali Logik
  3. Pengendali Perhubungan
  4. Pengendali Tugasan
  5. Pengendali Bitwise
  6. 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 ++:

  1. Bitwise ATAU [ditunjukkan sebagai "|"]
  2. Bitwise AND [diwakili sebagai "&"]
  3. Bitwise TIDAK [diwakili sebagai "~"]
  4. Bitwise XOR [diwakili sebagai "^"]
  5. Bitwise Left Shift [diwakili sebagai “<<”]
  6. 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-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.

Tiru klik Tetikus dengan melayang menggunakan Mouse Tanpa Klik di Windows 10
Menggunakan tetikus atau papan kekunci dalam keadaan salah penggunaan berlebihan boleh menyebabkan banyak masalah kesihatan, termasuk ketegangan, sind...
Tambahkan isyarat Tetikus ke Windows 10 menggunakan alat percuma ini
Dalam beberapa tahun kebelakangan ini komputer dan sistem operasi telah banyak berkembang. Ada saat ketika pengguna harus menggunakan perintah untuk m...
Mengawal & menguruskan pergerakan tetikus antara beberapa monitor di Windows 10
Pengurus Tetikus Paparan Dwi membolehkan anda mengawal & mengkonfigurasi pergerakan tetikus antara beberapa monitor, dengan memperlahankan pergerakann...