Bitwise operator melakukan perhitungan pada level bit. ada 6 bitwise operator, yaitu:
Bitwise operators hanya bisa digunakan antara variable integer. Setiap operator melakukan perhitungan berdasar aturan operasi logik.
Bitwise AND (&)
Aturannya: jika kedua input bernilai 1, outputnya akan bernilai 1, selain itu hasilnya 0. Contoh:
0 0 1 1
0 1 0 1
______ &
0 0 0 1
Integer berukuran 16 bit, jadi saat menggunakan operasi & akan terdapat 16 kali operasi perhitungan. Contoh:
int x = 77; //binary: 0000000001001101
int y = 121; //binary: 0000000001111001
int z = x & y;//result: 0000000001001001
In this case 77 & 121 = 73
Bitwise OR (|)
Jika salah satu input atau keduanya bernilai 1, akan menghasilkan 1, selain itu hasilnya 0
0 0 1 1
0 1 0 1
______ |
0 1 1 1
Bitwise XOR (^)
Jika hanya salah satu input bernilai 1, akan menghasilkan 1, jika kedua input bernilai 1 atau 0 , akan menghasilkan 0
0 0 1 1
0 1 0 1
______ ^
0 1 1 0
Bitwise NOT (~)
Bitwise NOT digunakan untuk single operand saja. Hasilnya adalah lawan dari nilai yang sekarang, 1 akan menjadi 0 dan 0 akan menjadi 1.
0 0 1 1
______ ~
1 1 0 0
Bitshift Left (<<), Bitshift Right (>>)
Bitshift operators menggeser seluruh bits pada integer ke kiri atau ke kanan. Banyaknya pergeseran sesuai nilai dikanan operator.
variable << number_of_bits
Contoh:
byte x = 9 ; // binary: 00001001
byte y = x << 3; // binary: 01001000 (or 72 dec)
Bits yang digeser hingga akhir baris akan hilang. Umumnya left bitshift digunakan untuk perkalian. Right bitshift digunakan membagi angkat.
- & bitwise and
- | bitwise or
- ^ bitwise xor
- ~ bitwise not
- << bitshift left
- >> bitshift right
Bitwise operators hanya bisa digunakan antara variable integer. Setiap operator melakukan perhitungan berdasar aturan operasi logik.
Bitwise AND (&)
Aturannya: jika kedua input bernilai 1, outputnya akan bernilai 1, selain itu hasilnya 0. Contoh:
0 0 1 1
0 1 0 1
______ &
0 0 0 1
Integer berukuran 16 bit, jadi saat menggunakan operasi & akan terdapat 16 kali operasi perhitungan. Contoh:
int x = 77; //binary: 0000000001001101
int y = 121; //binary: 0000000001111001
int z = x & y;//result: 0000000001001001
In this case 77 & 121 = 73
Bitwise OR (|)
Jika salah satu input atau keduanya bernilai 1, akan menghasilkan 1, selain itu hasilnya 0
0 0 1 1
0 1 0 1
______ |
0 1 1 1
Bitwise XOR (^)
Jika hanya salah satu input bernilai 1, akan menghasilkan 1, jika kedua input bernilai 1 atau 0 , akan menghasilkan 0
0 0 1 1
0 1 0 1
______ ^
0 1 1 0
Bitwise NOT (~)
Bitwise NOT digunakan untuk single operand saja. Hasilnya adalah lawan dari nilai yang sekarang, 1 akan menjadi 0 dan 0 akan menjadi 1.
0 0 1 1
______ ~
1 1 0 0
Bitshift Left (<<), Bitshift Right (>>)
Bitshift operators menggeser seluruh bits pada integer ke kiri atau ke kanan. Banyaknya pergeseran sesuai nilai dikanan operator.
variable << number_of_bits
Contoh:
byte x = 9 ; // binary: 00001001
byte y = x << 3; // binary: 01001000 (or 72 dec)
Bits yang digeser hingga akhir baris akan hilang. Umumnya left bitshift digunakan untuk perkalian. Right bitshift digunakan membagi angkat.