Operator Bitwise di Java dengan Contoh
Java mendefinisikan beberapa operator bitwise yang dapat diterapkan ke tipe integer: panjang , int , pendek , char , dan byte . Operator-operator ini bertindak atas bit individual operan mereka.
Operator Logika Bitwise
Operator logika bitwise adalah &, |, ^, dan ~. Mari kita bahas secara singkat operator logika bitwise ini. Tabel berikut menunjukkan hasil dari setiap operasi.
The Bitwise NOT
Juga disebut pelengkap bitwise, unary NOT operator, ~, membalikkan semua bit operannya.
Bitwise AND
Operator AND, &, menghasilkan 1 bit jika kedua operan juga 1. Nol diproduksi dalam semua kasus lain.
Bitwise OR
Operator OR, |, menggabungkan bit sedemikian rupa sehingga jika salah satu bit dalam operand adalah 1, maka bit yang dihasilkan adalah 1.
The Bitwise XOR
Operator XOR, ^, menggabungkan bit sedemikian rupa sehingga jika satu operand adalah 1, maka hasilnya adalah 1. Jika tidak, hasilnya adalah nol.
Mari tunjukkan di atas operator logika bitwise dengan sebuah contoh.
Menggunakan Operator Bitwise Logical
Program berikut menunjukkan operator logika bitwise:
paket net.javaguides.corejava.operators.bitwise ;
kelas publik BitLogic {
public static void main ( String args []) {
String binary [] = {
" 0000 " ,
" 0001 " ,
" 0010 " ,
" 0011 " ,
" 0100 " ,
" 0101 " ,
" 0110 " ,
"0111 ",
" 1000 " ,
" 1001 " ,
" 1010 " ,
" 1011 " ,
" 1100 " ,
" 1101 " ,
" 1110 " ,
" 1111 "
};
int a = 3 ; // 0 + 2 + 1 atau 0011 dalam biner
int b = 6 ; // 4 + 2 + 0 atau 0110 dalam biner
int c = a | b;
int d = a & b;
int e = a ^ b;
int f = ( ~ a & b) | (a & ~ b);
int g = ~ a & 0x0f ;
Sistem . keluar . println ( " a = " + binary [a]);
Sistem . keluar . println ( " b = " + binary [b]);
Sistem . keluar . println ( " a | b = " + binary [c]);
Sistem . keluar . println ( " a & b = " + binary [d]);
Sistem . keluar . println ( "a ^ b = " + biner [e]);
Sistem . keluar . println ( " ~ a & b | a & ~ b = " + biner [f]);
Sistem . keluar . println ( " ~ a = " + biner [g] );
}
}
Keluaran:
a = 0011
b = 0110
a|b = 0111
a&b = 0010
a^b = 0101
~a&b|a&~b = 0101
~a = 1100
Pergeseran Kiri
Operator shift kiri, << , menggeser semua bit dalam nilai ke kiri beberapa kali. Ini memiliki bentuk umum ini:
value << num
Di sini, num menentukan jumlah posisi ke kiri-pergeseran nilai dalam nilai. Artinya, << memindahkan semua bit dalam nilai yang ditentukan ke kiri dengan jumlah posisi bit yang ditentukan oleh num.
Program berikut menunjukkan konsep ini:
paket net.javaguides.corejava.operators.bitwise ;
public class ByteShift {
public static void main ( String args []) {
byte a = 64 , b;
int i;
i = a << 2 ;
b = ( byte ) (a << 2 );
Sistem . keluar . println ( " Nilai asli a: " + a);
Sistem . keluar . println ( " i dan b: " + i + " " + b);
}
}
Keluaran:
Original value of a: 64
i and b: 256 0
Operator Pergeseran Kanan Jawa
Operator operator kanan Java >> digunakan untuk memindahkan nilai operan kiri ke kanan dengan jumlah bit yang ditentukan oleh operan kanan. Bentuk umumnya ditunjukkan di sini:
value >> num
Di sini, num menentukan jumlah posisi ke kanan-pergeseran nilai dalam nilai. Artinya, >> memindahkan semua bit dalam nilai yang ditentukan ke kanan jumlah posisi bit yang ditentukan oleh num.
class OperatorExample {
public static void main ( String args []) {
System . keluar . println ( 10 >> 2 ); // 10/2 ^ 2 = 10/4 = 2
Sistem . keluar . println ( 20 >> 2 ); // 20/2 ^ 2 = 20/4 = 5
Sistem . keluar . println ( 20 >> 3 ); // 20/2 ^ 3 = 20/8 = 2
}
}
Keluaran:
2
5
2
Bitwise Operator Compound Assignments
Semua operator bitwise biner memiliki bentuk senyawa yang mirip dengan operator aljabar, yang menggabungkan tugas dengan operasi bitwise.
Misalnya, dua pernyataan berikut, yang menggeser nilai dalam kanan dengan empat bit, adalah setara:
a = a >> 4 ;
a >> = 4 ;
Demikian juga, dua pernyataan berikut, yang menghasilkan ekspresi bitwise a OR b, ekuivalen:
a = a | b;
a |= b;
Program berikut membuat beberapa variabel integer dan kemudian menggunakan tugas operator bitwise gabungan untuk memanipulasi variabel:
paket net.javaguides.corejava.operators.bitwise ;
public class OpBitEquals {
public static void main ( String args []) {
int a = 1 ;
int b = 2 ;
int c = 3 ;
a | = 4 ;
b >> = 1 ;
c << = 1 ;
a ^ = c;
Sistem . keluar . println ( " a = " + a);
Sistem . keluar . println ( " b = " + b);
Sistem . keluar . println ( " c = " + c);
}
}
Keluaran:
a = 3
b = 1
c = 6
siplah gan
BalasHapusSolder uap