1. &Pengendali bitwise

Kami sebelum ini mengatakan bahawa semua data disimpan dalam ingatan dalam perwakilan binari. Jadi agak lama dahulu, pengaturcara menghasilkan banyak cara menarik untuk bekerja dengan nombor binari. Sebagai contoh, Java mempunyai operator logik yang beroperasi pada bit perwakilan binari nombor: &(DAN), | (OR), ~(NOT atau pelengkap) dan ^(XOR - eksklusif atau).

a & b
Operator bitwise &(DAN).

Operator ini sangat serupa dengan &operator logik (AND), cuma ia dilambangkan dengan satu ampersand, bukan dua:

Dan ia digunakan pada bit individu. Setiap operan dianggap sebagai tatasusunan bit, dan ibit ke hasil dikira menggunakan ibit ke setiap dua operan.

Bit pertama hasil akan dikira berdasarkan bit pertama nombor a dan bit pertama nombor b, bit kedua — berdasarkan bit kedua nombor a dan bit kedua nombor b, dsb.

Operator &(AND) bermaksud "bit yang terhasil adalah sama dengan satu hanya jika bit nombor yang sepadan aadalah sama dengan satu ANDbit nombor yang sepadan badalah sama dengan satu":

1 & 1 = 1
1 & 0 = 0
0 & 1 = 0
0 & 0 = 0

Contoh:

Contoh Hasilnya
0b0011 & 0b1010
0b0010
0b1111 & 0b0000
0b0000
0b1010 & 0b0101
0b0000
0b1111 & 0b1010
0b1010

2. |Pengendali bitwise

Operator ini sangat serupa dengan |operator logik (ATAU), cuma ia dilambangkan dengan satu garis menegak, bukan dua:

a | b

Dan ia digunakan pada bit individu. Setiap operan dianggap sebagai tatasusunan bit, dan bit ke-i hasil dikira menggunakan bit ke-i bagi setiap dua operan.

Operator bitwise |(OR) bermaksud "bit yang terhasil adalah sama dengan satu jika bit nombor yang sepadan aadalah sama dengan satu ORbit nombor yang sepadan badalah sama dengan satu":

1 | 1 = 1
1 | 0 = 1
0 | 1 = 1
0 | 0 = 0

Contoh:

Contoh Hasilnya
0b0011 | 0b1010
0b1011
0b1110 | 0b0000
0b1110
0b1010 | 0b0101
0b1111
0b1111 | 0b1010
0b1111

Hanya apabila bit yang sepadan (bit pada kedudukan yang sama) kedua-dua nombor adalah sifar maka bit yang sepadan hasilnya sama dengan sifar.



3. Pengendali Bitwise ^(XOR atau "eksklusif atau")

Operator XOR, juga disebut eksklusif atau , dilambangkan dengan ^simbol. Untuk memasukkannya pada papan kekunci, tekan shift + 6 (pada susun atur papan kekunci Inggeris).

a ^ b

Operator ini agak serupa dengan ORoperator, termasuk kerana ia mempunyai nama yang serupa:XOR

Operator bitwise ^(XOR) bermaksud "bit yang terhasil adalah sama dengan satu jika bit nombor yang sepadan aadalah sama dengan satu ORbit nombor yang sepadan badalah sama dengan satu tetapi bukan kedua-duanya pada masa yang sama":

1 ^ 1 = 0
1 ^ 0 = 1
0 ^ 1 = 1
0 ^ 0 = 0

Contoh:

Contoh Hasilnya
0b0011 ^ 0b1010
0b1001
0b1110 ^ 0b0000
0b1110
0b1010 ^ 0b0101
0b1111
0b1111 ^ 0b1010
0b0101

Hanya apabila bit yang sepadan (bit pada kedudukan yang sama) kedua-dua nombor adalah berbeza , bit yang sepadan hasilnya sama dengan satu . Jika bit adalah sama , bit yang terhasil adalah sama dengan sifar .



~4. Pengendali Bitwise (NOT, COMPLEMENT).

Saya rasa anda sudah boleh meneka apa yang dilakukannya. Operator ini sangat serupa dengan !operator logik (NOT), tetapi ia dilambangkan dengan tilde , bukan tanda seru:

~a

Ini ialah operator unary , yang bermaksud ia terpakai pada satu nombor, bukan dua. Ia muncul sebelum operan tunggal ini.

Operator bitwise ~bermaksud "bit yang terhasil adalah satu jika bit nombor yang sepadan aadalah sifar, dan ia adalah sifar jika bit nombor yang sepadan aialah satu":

~1 = 0
~0 = 1

Contoh:

Contoh Hasilnya
~0b0011
0b1100
~0b0000
0b1111
~0b0101
0b1010
~0b1111
0b0000

Operator ini hanya menukar bit yang 1kepada 0dan bit yang 0kepada 1.