3.3 OPERATOR BITWISE
Operator
|
Deskripsi
|
Contoh
|
<<
|
Geser n bit ke kiri ( left shift )
|
m << n
|
>>
|
Geser n bit ke kanan ( right shift )
|
m >> n
|
&
|
Bitwise AND
|
m & n
|
|
|
Bitwise OR
|
m | n
|
^
|
Bitwise XOR
|
m ^ n
|
~
|
Bitwise NOT
|
~m
|
NB : Seluruh operator bitwise hanya bisa dikenakan pada operand bertipe data int atau char
Berikut ini diberikan tabel kebenaran untuk operator logika
P = A operator B
AND
|
OR
| ||||||||||||||||||||||||||||||
|
| ||||||||||||||||||||||||||||||
XOR
| |||||||||||||||||||||||||||||||
|
Contoh :
#include <iostream.h>
void main()
{
int m = 82, n = 26;
cout<<m<<" << 2"<<" = "<<(m<<2)<<endl;
cout<<m<<" >> 2"<<" = "<<(m>>2)<<endl;
cout<<m<<" & "<<n<<" = "<<(m&n)<<endl;
cout<<m<<" | "<<n<<" = "<<(m|n)<<endl;
cout<<m<<" ^ "<<n<<" = "<<(m^n)<<endl;
cout<<"~"<<m<<" = "<<~m<<endl;
}
Keluarannya :
82 << 2 = 328
82 >> 2 = 20
82 & 26 = 18
82 | 26 = 90
82 ^ 26 = 72
~82 = 83
Penjelasan :
Nilai keluaran diatas, tergantung dari jenis compiler yang digunakan. Hasil diatas merupakan keluaran dari compiler Turbo C++.
Pada Turbo C++ besar dari integer adalah 2 byte atau sama dengan 16 bit, untuk mengetahuinya digunakan perintah
cout<<sizeof(int)<<endl; // Untuk mengetahui besar dari int
Maka :
8210 = 00000000010100102 dan
Sehingga :
82 << 2 à 00000001010010002 = 32810
82 >> 2 à 00000000000101002 = 2010
82 & 26 à 00000000010100102
00000000000110102
------------------------------------------ &
00000000000100102 = 1810
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 :
m = m << n ó m <<= n
m = m >> n ó m >>= n
m = m & n ó m &= n
m = m | n ó m |= n
Tidak ada komentar:
Posting Komentar