Cari Blog Ini

Home Top Ad

Ke-gendeng-Anku

Selasa, 03 Desember 2019

Operator Bitwise pada C++

Operator Bitwise adalah operasi matematika yang mengoperasikan suatu nilai dalam bilangan biner. Operator bitwise akan bekerja dengan mengubah bilangan decimal menjadi bilangan biner, setelah itu akan melakukan operasi berdasarkan operator bitwise yang digunakan dan pada akhirnya nilai tersebut akan di ubah menjadi bilangan decimal kembali.

Operator
Deskripsi
Contoh
<< 
Geser n bit ke kiri (left shift)
a << n
>> 
Geser n bit ke kanan (right shift)
a >> n
&
Bitwise AND
a & n
|
Bitwise OR
a | n
^
Bitwise XOR
a ^ n
~
Bitwise NOT
a ~ n
NB: Seluruh operator bitwise hanya bisa dikenakan pada operand bertipe data int atau char.

Berikut ini di berikan tabel kebenaran untuk operator logika
P = A operator B

AND                                                          
A
B
P
0
0
0
0
1
0
1
0
0
1
1
1

OR
A
B
P
0
0
0
0
1
1
1
0
1
1
1
1

XOR
A
B
P
0
0
0
0
1
1
1
0
1
1
1
0

Contoh :

  1. #include <iostream>
  2. using namespace std;
  3. int main()
  4. {
  5. int a = 82, n = 26;
  6. cout<<a<<" <<2" <<"="<<(a<<2)<<endl;
  7. cout<<a<<" >>2" <<"="<<(A>>2)<<endl;
  8. cout<<a<<" & "<<n<<"="<<(a&n)<<endl;
  9. cout<<a<<" | "<<n<<"="<<(a|n)<<endl;
  10. cout<<a<<"^"<<n<<"="<<(a^n)<<endl;
  11. cout<<"~"<<a<<"="<<~a<<endl;
  12. }
Keluarannya :
82 << 2 = 328
82 >> 2 = 20
82 & 26 = 18
82 | 26 = 90
82 ^ 26 = 72
~82 = 83

Penjelasannya :
Nilai keluaran di atas, tergantung dari jenis compiler yang di gunakan. Hasil diatas merupakan compiler Turbo C++. Pada Turbo C++ besar dari integer adalah 2 byte atau sama dengan 16 bit, untuk mengetahuinya di gunakan perintah :

cout<<sizeof(int)<<endl; // Untuk mengetahui besar dari int

Maka :
8210 = 00000000010100102 dan
2610 = 00000000000110102

Sehingga :
82 << 2 ⇒ 00000001010010002 = 32810
82 >> 2 ⇒ 00000000000101002 = 2010
82 & 26 ⇒ 00000000010100102
                  00000000000110102
                  ---------------------------- &
00000000000100102 = 1810
dan begitu juga untuk operasi OR dan XOR.
~82 ⇒ digunakan 2's complement, yaitu 8210 = 00000000010100102 lalu dinegasikan tiap bitnya menjadi 11111111101011012 kemudian LSB ditambah 1 menjadi 1111111110101110 = 6545410 nilai ini melebihi jangkauan maksimum int yang berkisar di -32768 sampai 32767, sehingga nilai yang keluar yaitu 83.

Cara lain penulisan dengan menggunakan operator bitwise :

a = a << n ⇔ a << = n
a = a >> n ⇔ a >> = n
a = a & n ⇔ a & = n
a = a | n ⇔ a | = n
a = a ^ n ⇔ a ^ = n

Sekian artikel serta tutorial Ke-gendeng-Anku tentang Operator Bitwise untuk Operator Aritmatika silahkan baca disini!!

Bantu saya untuk bagikan artikel dan tutorial ini supaya lebih bermanfaat.

Tidak ada komentar:

Posting Komentar