Operasi bit yang ditentukan oleh Java berlaku untuk tipe integer seperti int, long, short, char, dan byte.
Operator bitwise terutama digunakan untuk melakukan operasi pada bit biner dari operan. Operasi bitwise mewakili perhitungan berdasarkan setiap digit biner. Operan dan hasil operasi keduanya merupakan nilai integer .
Operator bit dalam bahasa Java dibagi menjadi dua kategori: operator logika bit dan operator bit shift.
Bitwise DAN operasi:
Operasi bitwise AND melakukan operasi bitwise pada dua data integer a dan b, dan hasil dari operasi tersebut adalah data integer c. Algoritmanya adalah: jika bit-bit yang bersesuaian dari dua data a dan b sama-sama 1, maka bit c adalah 1, jika tidak maka bit tersebut adalah 0.
Misalnya:
a:0 1 0 1 0 0 1 1
b:0 0 1 1 1 0 1 0
c:0 0 0 1 0 0 1 0
Operasi bitwise ATAU:
Operasi bitwise OR melakukan operasi bitwise pada dua data integer a dan b, dan hasil operasinya adalah data integer c. Algoritmanya adalah: jika bit-bit yang bersesuaian dari dua data a dan b sama-sama 0, maka bit c adalah 0, jika tidak maka bit tersebut adalah 1.
Misalnya:
a:0 1 0 1 0 0 1 1
b:0 0 1 1 1 0 1 0
c: 0 1 1 1 1 0 1 1
Operasi BUKAN Bitwise:
Operasi bitwise NOT melakukan operasi bitwise pada data integer a, dan hasil operasinya adalah data integer c. Algoritmanya adalah: jika bit data a yang sesuai adalah 0, maka bit c adalah 1, jika tidak maka bit tersebut adalah 0.
Misalnya:
a:0 1 0 1 0 0 1 1
c:1 0 1 0 1 1 0 0
Operasi XOR bitwise:
Operasi bitwise XOR melakukan operasi bitwise pada dua data integer a dan b, dan hasil operasinya adalah data integer c. Algoritmanya adalah: jika bit-bit yang bersesuaian dari dua data a dan b adalah sama, maka bit c adalah 0, jika tidak maka bit tersebut adalah 1.
Misalnya:
a:0 1 0 1 0 0 1 1
b:0 0 1 1 1 0 1 0
c:0 1 1 0 1 0 0 1
Operasi pergeseran kanan bitwise:
Algoritma operasi pergeseran kanan bitwise adalah sebagai berikut: pindahkan semua angka ke kanan sebanyak jumlah digit yang sesuai dalam bentuk biner, geser keluar (buang) bit rendah, dan isi bit kosong di bit tinggi dengan nol.
Misal: menggeser bilangan bulat 83 ke kanan sebanyak 1 bit
Sebelum berpindah: 0 1 0 1 0 0 1 1
Setelah perpindahan: 0 0 1 0 1 0 0 1
Operasi shift kiri bitwise:
Algoritma operasi pergeseran kiri bitwise adalah: menggeser semua angka ke kiri sebanyak jumlah digit yang sesuai dalam bentuk biner, menggeser bit tinggi (buang), dan mengisi bit kosong di bit rendah dengan nol.
Misal: menggeser bilangan bulat 83 ke kiri sebanyak 1 bit
Sebelum berpindah: 0 1 0 1 0 0 1 1
Setelah perpindahan: 1 0 1 0 0 1 1 0
Contoh:
publicclassMain{publicstaticvoidmain(String[]args){inta=83;/*83=01010011*/intb=58;/*58=00111010*/intc=0;c=a&b;/*18=00010010*/System.out .println(a&b=+c);c=a|b;/*123=01111011*/System.out.println(a|b=+c);c=~a;/*01010011 adalah 10101100 setelah negasi pelengkap 10101100 adalah 11010100, -84=11010100*/System.out.println(~a=+c);c=a^b;/*105=01101001*/System.out.println(a^b=+ c );c=a>>1;/*41=00101001*/System.out.println(a>>2=+c);c=a<<1;/*166=10100110*/System.out (sebuah<<2=+c);}}
Hasil yang berjalan adalah sebagai berikut:
a&b=18a|b=123~a=-84a^b=105a>>2=41a<<2=166