C++

Operator Bitwise C++

Operator Bitwise C++
Pada artikel ini, kita akan membahas operator bitwise dalam bahasa pemrograman C++. Kita akan melihat beberapa contoh kerja untuk memahami operasi bitwise secara detail. Di C++, operator bitwise bekerja pada level bit individual.

Ikhtisar Singkat Operator Bitwise

Operator adalah simbol yang menginstruksikan compiler untuk melakukan operasi matematika atau logika tertentu logical. Ada beberapa jenis operator dalam C++, seperti:

  1. Operator Aritmatika
  2. Operator Logika
  3. Operator Relasional
  4. Operator Penugasan
  5. Operator Bitwise
  6. Operator Lain-lain

Semua operator Bitwise bekerja pada level bit individu. Operator bitwise hanya dapat diterapkan pada tipe data integer dan karakter. Misalnya, jika Anda memiliki variabel tipe integer dengan ukuran 32 bit dan Anda menerapkan operasi NOT bitwise, operator NOT bitwise akan diterapkan untuk semua 32 bit. Jadi, akhirnya, semua 32 bit dalam variabel akan dibalik.

Ada enam operator bitwise berbeda yang tersedia di C++:

  1. Bitwise OR [diwakili sebagai “|”]
  2. Bitwise AND [diwakili sebagai “&”]
  3. Bitwise NOT [diwakili sebagai “~”]
  4. Bitwise XOR [diwakili sebagai “^”]
  5. Bitwise Left Shift [diwakili sebagai “<<”]
  6. Bitwise Right Shift [diwakili sebagai ">>"]

Bitwise ATAU Tabel Kebenaran

Operator Bitwise OR menghasilkan 1 ketika setidaknya satu operan diatur ke 1. Berikut adalah tabel kebenaran untuk operator Bitwise OR:

Bit-1 Bit-2 Bit-1 | Bit-2
0 0 0
0 1 1
1 0 1
1 1 1

Tabel Bitwise DAN Kebenaran

Operator bitwise AND menghasilkan 1 ketika kedua operan disetel ke 1. Berikut adalah tabel kebenaran untuk operator Bitwise AND:

Bit-1 Bit-2 Bit-1 & Bit-2
0 0 0
0 1 0
1 0 0
1 1 1

Bitwise BUKAN Tabel Kebenaran

Operator bitwise NOT membalikkan operan. Berikut adalah tabel kebenaran untuk operator Bitwise NOT:

Bit-1 ~Bit-1
0 1
1 0

Tabel Kebenaran Bitwise XOR

Operator XOR bitwise menghasilkan 1 jika, dan hanya jika, salah satu operan diatur ke 1. Berikut adalah tabel kebenaran untuk operator Bitwise AND:

Bit-1 Bit-2 Bit-1 ^ Bit-2
0 0 0
0 1 1
1 0 1
1 1 0

Operator Shift Kiri Bitwise

Operator Bitwise Left Shift menggeser semua bit yang tersisa dengan jumlah bit yang ditentukan. Jika Anda menggeser semua bit data dengan 1, data asli akan dikalikan 2. Demikian pula, jika Anda menggeser semua bit data ke kiri dengan 2, data asli akan dikalikan dengan 4.

Operator Pergeseran Kanan Bitwise

Operator Bitwise Right Shift menggeser semua bit ke kanan dengan jumlah bit yang ditentukan bit. Jika Anda menggeser ke kanan semua bit data dengan 1, data asli akan dibagi (pembagian bilangan bulat) dengan 2. Demikian pula, jika Anda menggeser ke kanan semua bit data dengan 2, data asli akan dibagi (pembagian bilangan bulat) dengan 4.

Contoh

Sekarang, karena kita telah memahami konsep dasar operasi bitwise, mari kita lihat beberapa contoh, yang akan membantu Anda memahami operasi bitwise di C++:

Contoh-7 dan 8 adalah untuk mendemonstrasikan penggunaan dunia nyata dari operator bitwise dalam bahasa pemrograman C++.

Contoh-1: Bitwise ATAU Operator

Dalam program contoh ini, kami akan mendemonstrasikan operator Bitwise OR.

#termasuk
#termasuk
#termasuk
menggunakan namespace std;
// fungsi tampilan()
tampilan batal (string print_msg, nomor int)

bitset<16> myBitSet(angka);
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 | nomor_kedua;
// cetak angka input
cout << endl;
display("Angka Pertama adalah       =  ", angka_pertama);
display("Nomor Kedua adalah       =  ", second_num);
// cetak nilai keluaran
display("angka_pertama | angka_kedua =  ", hasil);
cout << endl;
kembali 0;

Contoh-2: Bitwise DAN Operator

Dalam contoh program ini, kami akan mengilustrasikan Bitwise AND operator.

#termasuk
#termasuk
#termasuk
menggunakan namespace std;
// fungsi tampilan()
tampilan batal (string print_msg, nomor int)

bitset<16> myBitSet(angka);
cout << print_msg;
cout << myBitSet.to_string() << " (" << myBitSet.to_ulong() << ") " << endl;

int utama()

int first_num = 7, second_num = 9, hasil = 0;
// Operasi bit dan AND
hasil = first_num & second_num;
// cetak angka input
cout << endl;
display("Angka Pertama adalah       =  ", angka_pertama);
splay("Angka Kedua adalah       =  ", angka_kedua);
// cetak nilai keluaran
display("angka_pertama & angka_kedua =  ", hasil);
cout << endl;
kembali 0;

Contoh-3: Bitwise BUKAN Operator

Dalam program contoh ini, kita akan memahami cara kerja operator Bitwise NOT di C++.

#termasuk
#termasuk
#termasuk
menggunakan namespace std;
// fungsi tampilan()
tampilan batal (string print_msg, nomor int)

bitset<16> myBitSet(angka);
cout << print_msg;
cout << myBitSet.to_string() << " (" << myBitSet.to_ulong() << ") " << endl;

int utama()

int first_num = 7, second_num = 9, result_1 = 0, result_2 = 0;
// Operasi BUKAN bitwise
hasil_1 = ~angka_pertama;
hasil_2 = ~angka_kedua;
// mencetak angka input dan nilai output
cout << endl;
display("Angka Pertama adalah    =  ", angka_pertama);
display("~first_num         =  ", result_1);
cout << endl;
// mencetak angka input dan nilai output
display("Nomor Kedua adalah   =  ", second_num);
display("~angka_kedua       =  ", hasil_2);
cout << endl;
kembali 0;

Contoh-4: Operator XOR Bitwise

Program ini bermaksud untuk menjelaskan cara kerja operator Bitwise XOR di C++.

#termasuk
#termasuk
#termasuk
menggunakan namespace std;
// fungsi tampilan()
tampilan batal (string print_msg, nomor int)

bitset<16> myBitSet(angka);
cout << print_msg;
cout << myBitSet.to_string() << " (" << myBitSet.to_ulong() << ") " << endl;

int utama()

int first_num = 7, second_num = 9, hasil = 0;
// Operasi XOR bitwise
hasil = first_num ^ second_num;
// cetak angka input
cout << endl;
display("Angka Pertama adalah       =  ", angka_pertama);
display("Nomor Kedua adalah       =  ", second_num);
// cetak nilai keluaran
display("bilangan_pertama ^ bilangan_kedua =  ", hasil);
cout << endl;
kembali 0;

Contoh-5: Operator Shift Kiri Bitwise

Sekarang, kita akan melihat contoh operator Bitwise Left Shift. Dalam program ini, kami telah mendeklarasikan dua angka, first_num dan second_num bertipe integer. Di sini, "nomor_pertama" digeser kiri oleh satu bit, dan "nomor_kedua" digeser ke kiri oleh dua bit.

#termasuk
#termasuk
#termasuk
menggunakan namespace std;
// fungsi tampilan()
tampilan batal (string print_msg, nomor int)

bitset<16> myBitSet(angka);
cout << print_msg;
cout << myBitSet.to_string() << " (" << myBitSet.to_ulong() << ") " << endl;

int utama()

int first_num = 7, second_num = 9, result_1 = 0, result_2 = 0;
// Operasi Shift Kiri Bitwise
hasil_1 = angka_pertama << 1;
hasil_2 = angka_kedua << 2;
// mencetak angka input dan nilai output
cout << endl;
display("Angka Pertama adalah    =  ", angka_pertama);
display("nomor_pertama << 1     =  ", result_1);
cout << endl;
// mencetak angka input dan nilai output
display("Nomor Kedua adalah   =  ", second_num);
display("bilangan_kedua << 2    =  ", result_2);
cout << endl;
kembali 0;

Contoh-6: Operator Shift Kanan Bitwise Bit

Sekarang, kita akan melihat contoh lain untuk memahami operator Bitwise Right Shift. Kami telah mendeklarasikan dua angka, first_num dan second_num bertipe integer. Di sini, "first_num" digeser ke kanan sebanyak satu bit, dan "second_num" digeser ke kanan sebanyak dua bit.

#termasuk
#termasuk
#termasuk
menggunakan namespace std;
// fungsi tampilan()
tampilan batal (string print_msg, nomor int)

bitset<16> myBitSet(angka);
cout << print_msg;
cout << myBitSet.to_string() << " (" << myBitSet.to_ulong() << ") " << endl;

int utama()

int first_num = 7, second_num = 9, result_1 = 0, result_2 = 0;
// Operasi Pergeseran Kanan Bitwise
hasil_1 = angka_pertama >> 1;
hasil_2 = bilangan_kedua >> 2;
// mencetak angka input dan nilai output
cout << endl;
display("Angka Pertama adalah    =  ", angka_pertama);
display("bilangan_pertama >> 1     =  ", hasil_1);
cout << endl;
// mencetak angka input dan nilai output
display("Nomor Kedua adalah   =  ", second_num);
display("bilangan_kedua >> 2    =  ", hasil_2);
cout << endl;
kembali 0;

Contoh-7: Atur Bit

Contoh ini bermaksud  menunjukkan cara menyetel bit tertentu menggunakan operator bitwise.

#termasuk
#termasuk
#termasuk
menggunakan namespace std;
// fungsi tampilan()
tampilan batal (string print_msg, nomor int)

bitset<16> myBitSet(angka);
cout << print_msg;
cout << myBitSet.to_string() << " (" << myBitSet.to_ulong() << ") " << endl;

int utama()

int first_num = 7, second_num = 9;
// cetak nomor input - first_num
cout << endl;
display("Angka Pertama adalah          =  ", angka_pertama);
// Setel bit ke-5
first_num |= (1UL << 5);
// Hasil cetak
display("Tetapkan bit ke-5 dari first_num  =  ", first_num);
cout << endl;
// cetak nomor input - second_num
cout << endl;
display("Nomor Kedua adalah          =  ", second_num);// Setel bit ke-6
second_num |= (1UL << 6);
// Hasil cetak
display("Tetapkan bit ke-6 dari second_num  =  ", second_num);
cout << endl;
kembali 0;

Contoh-8: Hapus Bit

Contoh ini bermaksud menunjukkan cara menghapus bit tertentu menggunakan operator bitwisewise.

#termasuk
#termasuk
#termasuk
menggunakan namespace std;
// fungsi tampilan()
tampilan batal (string print_msg, nomor int)

bitset<16> myBitSet(angka);
cout << print_msg;
cout << myBitSet.to_string() << " (" << myBitSet.to_ulong() << ") " << endl;

int utama()

int first_num = 7, second_num = 9;
// cetak nomor input - first_num
cout << endl;
display("Angka Pertama adalah          =  ", angka_pertama);
// Hapus bit ke-2
first_num &= ~(1UL << 2);
// Hasil cetak
display("Tetapkan bit ke-2 dari first_num  =  ", first_num);
cout << endl;
// cetak nomor input - second_num
cout << endl;
display("Nomor Kedua adalah           =  ", second_number);
// Hapus bit ke-3
second_num &= ~(1UL << 3);
// Hasil cetak
display("Setel bit ke-3 dari second_num  =  ", second_num);
cout << endl;
kembali 0;

Kesimpulan

Operator bitwise terutama digunakan untuk memanipulasi bit individu untuk tipe data integer dan karakter. Operator bitwise banyak digunakan dalam pengembangan perangkat lunak tertanam. Jadi, jika Anda mengembangkan driver perangkat atau sistem yang sangat dekat dengan tingkat perangkat keras, Anda mungkin ingin menggunakan operator bitwise ini.

Alat Berguna untuk Gamer Linux
Jika Anda suka bermain game di Linux, kemungkinan besar Anda telah menggunakan aplikasi dan utilitas seperti Wine, Lutris, dan OBS Studio untuk mening...
Game Remaster HD untuk Linux yang Belum Pernah Rilis Linux Sebelumnya
Banyak pengembang dan penerbit game datang dengan remaster HD dari game lama untuk memperpanjang umur waralaba, harap penggemar meminta kompatibilitas...
Cara Menggunakan AutoKey untuk Mengotomatiskan Game Linux
AutoKey adalah utilitas otomatisasi desktop untuk Linux dan X11, diprogram dengan Python 3, GTK dan Qt. Dengan menggunakan skrip dan fungsionalitas MA...