2.4 OPERATOR BITWISE
Operator bitwise digunakan untuk memanipulasi bit-bit nilai data yang
ada di memori. Operator-operator ini hanya dapat digunakan untuk tipe data
char, int dan long int.
Tabel. Operator Bitwise
Operator
|
Jenjang
|
Fungsi
|
<<
|
5
|
Pergeseran bit ke
kiri
|
>>
|
5
|
Pegeseran bit ke
kanan
|
&
|
8
|
Bitwise AND
|
^
|
9
|
Bitwise XOR
(Exclusive OR)
|
│
|
10
|
Bitwise OR
|
~
|
–
|
Bitwise NOT
|
2.4.1 OPERATOR BITWISE KOMPLEMEN SATU
Operator Bitwise komplemen satu (One’s Complement Operator) kadang-kadang
disebut juga dngan istilah komplementation operator. Operator ini menggunakan
symbol ‘~’ dan merupakan operator Unary yang mempunyai arti bitwise NOT, yaitu
membalik nilai-nilai bit 1 menjadi nilai- nilai bit 0 atau sebaliknya. Misalnya
nilai binary 11011001 maka nilai komplemen satunya adalah nilai binary
00100110.
2.4.2 OPERATOR BITWISE LOGIKA
Tiga buah operator bitwise logika dapat digunakan, yaitu operator bitwise
AND (‘&’), Operator bitwise OR(‘ |’) dan operator bitwise XOR (‘^’). Operator-operator ini menggunakan dua buah operand. Hubungan bit-bit untuk
operator-operator ini dan hasilnya tampak pada tabel berikut
Tabel hubungan Bit dan Hasilnya untuk Operasi Bitwise Logika.
Tabel. Operator Bitwise Logika
Bit
|
AND
b1 & b2
|
OR
b1 |b2
|
XOR
b1 ^ b2
|
|
b1
|
b2
|
|||
1
1
0
0
|
1
0
1
0
|
1
0
0
0
|
1
1
1
0
|
0
1
1
0
|
Contoh:
#include <stdio.h>
main()
{
int X=0x2d; /*bernilai 45 dalam decimal */
int Y=0x1b; /* bernilai 27 dalam decimal */
printf(“%x & %x hasilnya adalah %x (dalam heksadesimal)\n”,X,Y,X&Y);
printf(“%x | %x hasilnya adalah %x (dalam heksadesimal)\n”, X,Y, X|Y);
printf(“%x^ %x hasilnya adalah %x (dalam heksadesimal)\n”,X,Y,X^Y);
}
Jika program ini dijalankan akan didapatkan hasil:
2d & 1b hasilnya adalah 9 (dalam heksadesimal)
2d | 1b hasilnya adalah 3f(dalam heksadesimal)
2d | 1b hasilnya adalah 36 (dalam heksadesimal)