Operator Bitwise JavaScript (dengan Contoh)

Dalam tutorial ini, Anda akan belajar tentang operator bitwise JavaScript dan tipenya dengan bantuan contoh.

Operator Bitwise JavaScript

Operator Bitwise memperlakukan operannya sebagai kumpulan digit biner 32-bit (nol dan satu) dan melakukan tindakan. Namun, hasilnya ditampilkan sebagai nilai desimal.

Operator Nama Contoh
& Bitwise DAN x & y
| Bitwise ATAU x | y
^ Bitwise XOR x y
~ Bitwise TIDAK ~x
<< Pergeseran kiri x << y
>> Pergeseran kanan yang menyebarkan tanda x>> y
>>> Pergeseran kanan tanpa isian x>>> y

Catatan : Bilangan bulat minimum dan maksimum yang dapat direpresentasikan melalui nomor bertanda 32-bit adalah -2147483648 hingga 2147483647.

JavaScript Bitwise DAN

Bitwise AND &mengembalikan 1 jika bit yang sesuai dari kedua operan adalah 1 selain itu mengembalikan 0 .

Operand 1 Operand 2 DAN Operasi
0 0 0 & 0adalah 0
0 1 0 & 1adalah 0
1 0 1 & 0adalah 0
1 1 1 & 1adalah 1

Mari kita lihat operasi DAN bitwise dari dua bilangan bulat 12 dan 25 .

 Dalam biner, 12 = 01100 25 = 11001 // Bitwise AND Operasi 12 dan 25 00001100 & 00011001 --------- 00001000 = 8 (Dalam desimal)

Catatan : Mengonversi biner 12 ke 32-bit memberi kita 00000000000000000000000000001100dan 25 memberi 00000000000000000000000000011001. Namun, kami telah menghapus angka nol sebelumnya untuk kesederhanaan.

Contoh 1: Bitwise AND Operator

 // bitwise AND operator example let a = 12; let b = 25; result = a & b; console.log(result); // 8 

Dalam program di atas,

  • Nilai biner dari 12 adalah00000000000000000000000000001100
  • Nilai biner 25 adalah 00000000000000000000000000011001.
  • Ketika operasi bitwise AND dilakukan, hasil biner akan 00000000000000000000000000001000diubah menjadi nilai desimal 8.

JavaScript Bitwise ATAU

Bitwise OR |mengembalikan 1 jika salah satu bit terkait dari satu operan adalah 1 yang lain mengembalikan 0 .

Operand 1 Operand 2 ATAU Operasi
0 0 0 | 0adalah 0
0 1 0 | 1adalah 1
1 0 1 | 0adalah 1
1 1 1 | 1adalah 1

Mari kita lihat operasi bitwise OR dari dua bilangan bulat 12 dan 25 .

Dalam biner, 12 = 01100 25 = 11001 // Bitwise OR Operasi 12 dan 25 00001100 | 00011001 -------- 00011101 = 29 (Dalam desimal)

Contoh 2: Bitwise OR Operator

 // bitwise OR operator example let a = 12; let b = 25; result = a | b; console.log(result); // 29

Ketika operasi bitwise OR dilakukan, hasil biner akan 00000000000000000000000000011101diubah menjadi nilai desimal 29.

JavaScript Bitwise XOR

Bitwise XOR ^mengembalikan 1 jika bit yang sesuai berbeda dan mengembalikan 0 jika bit yang sesuai sama.

Operand 1 Operand 2 Operasi XOR
0 0 0 0adalah 0
0 1 0 1adalah 1
1 0 1 0adalah 1
1 1 1 1adalah 0
 Dalam biner, 12 = 01100 25 = 11001 // Operasi Bitwise XOR 12 dan 25 00001100 00011001 -------- 00010101 = 21 (Dalam desimal)

Contoh 3: Operator Bitwise XOR

 // bitwise XOR operator example let a = 12; let b = 25; result = a b; console.log(result); // 21

Ketika operasi bitwise XOR dilakukan, hasil biner akan 00000000000000000000000000010101diubah menjadi nilai desimal 21.

JavaScript Bitwise TIDAK

Bitwise NOT ~membalikkan bit ( 0 menjadi 1 , 1 menjadi 0 ).

 Dalam biner, 12 = 00000000000000000000000000001100 // Bitwise Not Operation of 12 ~ 00000000000000000000000000001100 --------------------------------- 11111111111111111111111111110011 = -13 (Dalam desimal)

Saat mengonversi 11111111111111111111111111110011ke desimal, nilainya akan menjadi 4294967283. Tetapi saat menggunakan operator bitwise, nilai dihitung dalam format komplemen bertanda 2 kecuali untuk shift kanan isian nol.

Komplemen 2 dihitung dengan membalik bit (komplemen 1) dan kemudian menambahkan 1 . Sebagai contoh,

 13 in binary: 00000000000000000000000000001101 1's complement of 13: 11111111111111111111111111110010 2's complement of 13: 11111111111111111111111111110010 +1 --------------------------------- 11111111111111111111111111110011

Notice the 2's complement of 13 (i.e. -13) is 11111111111111111111111111110011. This value is equivalent to the bitwise NOT of 12.

Example 4: Bitwise NOT Operator

 // bitwise NOT operator example let b = 12; result = ~b; console.log(result); // -13

When bitwise NOT operation is performed, the binary result will be 11111111111111111111111111110011 which converts into the decimal value -13.

Note: Bitwise NOT of a number x gives -(x + 1). Notice above ~2 gives -3.

JavaScript Left shift

Dalam operator shift kiri <<, operan kiri menentukan nomor dan operan kanan menentukan nomor yang akan digeser ke kiri. Bit nol ditambahkan ke kanan dan bit berlebih dari kiri dibuang.

Sedikit pergeseran ke kiri dalam JavaScript

Sebagai contoh,

 let a = 8; let b = 1; result = a << b; // 1 ( 00000000000000000000000000010000 ) console.log(result);

Pergeseran kanan penyebar tanda JavaScript

Pada operator shift kanan >>, operan pertama menentukan angka dan operand kedua menentukan angka yang akan dipindahkan ke kanan. Bit berlebih dari kanan akan dibuang. Salinan dari bit paling kiri digeser dari kiri, oleh karena itu disebut penyebaran tanda.

Sedikit pergeseran ke kanan dengan tanda yang menyebarkan isian di JavaScript

Sebagai contoh,

 let a = 8; let b = 1; // 11111111111111111111111111111101 let c = -3; result = a>> b; result1 = c>> b; // 4 (00000000000000000000000000000100) console.log(result); // -1 (11111111111111111111111111111111) console.log(result1); 

Pergeseran kanan isian-nol JavaScript

Pergeseran >>>kanan pengisian-nol menggeser operan ke kanan dengan mengisi bit nol ke kiri. Bit berlebih dari kanan akan dibuang.

Pergeseran kanan satu bit dengan nol mengisi JavaScript

Sebagai contoh,

 let a = 8; let b = 1; let c = -3; result = a>>> b; result1 = c>>> b; // 4 (00000000000000000000000000000100) console.log(result); // 1073741823 (00111111111111111111111111111111) console.log(result);

Artikel yang menarik...