Operator bit JavaScript
Operator bit JavaScript
Operator | Nama | Deskripsi |
---|---|---|
& | AND | Jika kedua bit bernilai 1, setiap bit diatur menjadi 1 |
| | OR | Jika salah satu bit bernilai 1, setiap bit diatur menjadi 1 |
^ | XOR | Jika kedua bit hanya satu yang bernilai 1, setiap bit diatur menjadi 1 |
~ | NOT | Membalikkan semua bit |
<< | Pemindahan kiri dengan pengisian nol | Dengan memindahkan nol dari kanan ke kiri dan melepaskan bit yang paling kiri. |
>> | Pemindahan kiri berkenalan | Dengan memindahkan salinan bit yang paling kiri dari kiri ke kanan dan melepaskan bit yang paling kanan. |
>>> | Pemindahan kiri dengan pengisian nol | Dengan memindahkan nol dari kiri ke kanan dan melepaskan bit yang paling kanan. |
实例
Operasi | Hasil | sama dengan | Hasil |
---|---|---|---|
5 & 1 | 1 | 0101 & 0001 | 0001 |
5 | 1 | 5 | 0101 | 0001 | 0101 |
5 ^ 1 | 4 | 0101 ^ 0001 | 0100 |
~ 5 | 10 | ~0101 | 1010 |
5 << 1 | 10 | 0101 << 1 | 1010 |
5 >> 1 | 2 | 0101 >> 1 | 0010 |
5 >>> 1 | 2 | 0101 >>> 1 | 0010 |
JavaScript menggunakan bilangan bit operasi 32 bit
JavaScript menyimpan angka sebagai bilangan pecahan 64 bit, tetapi semua operasi bit dijalankan dengan bilangan biner 32 bit.
Sebelum operasi bit dilakukan, JavaScript akan mengkonversi angka ke bilangan bulat bertanda 32 bit.
Setelah operasi bit dilakukan, hasil akan diubah kembali menjadi bilangan JavaScript 64 bit.
Contoh di atas menggunakan bilangan biner tak bertanda empat digit. Jadi ~ 5 mengembalikan 10.
Karena JavaScript menggunakan bilangan bulat bertanda 32 bit, JavaScript akan mengembalikan -6.
00000000000000000000000000000101 (5)
11111111111111111111111111111010 (~5 = -6)
Bilangan bulat bertanda menggunakan bit paling kiri sebagai tanda negatif.
Operasi Bit AND
Ketika operasi bit AND dilakukan terhadap digit-digit pasangan, jika digit semua adalah 1, maka akan mengembalikan 1.
Contoh unit:
Operasi | Hasil |
---|---|
0 & 0 | 0 |
0 & 1 | 0 |
1 & 0 | 0 |
1 & 1 | 1 |
Contoh empat digit:
Operasi | Hasil |
---|---|
1111 & 0000 | 0000 |
1111 & 0001 | 0001 |
1111 & 0010 | 0010 |
1111 & 0100 | 0100 |
Operasi Bit OR
Ketika operasi bit OR dilakukan terhadap digit-digit pasangan, jika salah satu digit adalah 1, maka akan mengembalikan 1:
Contoh unit
Operasi | Hasil |
---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 1 |
Operasi empat digit:
Operasi | Hasil |
---|---|
1111 | 0000 | 1111 |
1111 | 0001 | 1111 |
1111 | 0010 | 1111 |
1111 | 0100 | 1111 |
Operasi Bit XOR
Ketika operasi bit XOR dilakukan terhadap digit-digit pasangan, jika digit berbeda, maka akan mengembalikan 1:
Contoh unit:
Operasi | Hasil |
---|---|
0 ^ 0 | 0 |
0 ^ 1 | 1 |
1 ^ 0 | 1 |
1 ^ 1 | 0 |
Contoh empat digit:
Operasi | Hasil |
---|---|
1111 ^ 0000 | 1111 |
1111 ^ 0001 | 1110 |
1111 ^ 0010 | 1101 |
1111 ^ 0100 | 1011 |
JavaScript Operasi Bit AND (&)
Jika digit-bit semua 1, operasi bit AND mengembalikan 1:
Desimal | Biner |
---|---|
5 | 00000000000000000000000000000101 |
1 | 00000000000000000000000000000001 |
5 & 1 | 00000000000000000000000000000001 (1) |
实例
var x = 5 & 1;
JavaScript Operasi Bit OR (|)
Jika salah satu digit adalah 1, operasi bit OR mengembalikan 1:
Desimal | Biner |
---|---|
5 | 00000000000000000000000000000101 |
1 | 00000000000000000000000000000001 |
5 | 1 | 00000000000000000000000000000101 (5) |
实例
var x = 5 | 1;
Operasi bit XOR (^) dalam JavaScript
Jika digit berbeda, XOR mengembalikan 1:
Desimal | Biner |
---|---|
5 | 00000000000000000000000000000101 |
1 | 00000000000000000000000000000001 |
5 ^ 1 | 00000000000000000000000000000100 (4) |
实例
var x = 5 ^ 1;
Operasi bit NOT (~) dalam JavaScript
Desimal | Biner |
---|---|
5 | 00000000000000000000000000000101 |
~5 | 11111111111111111111111111111010 (-6) |
实例
var x = ~5;
Pindah kiri dengan pengisian nol (<<) dalam operasi bit JavaScript
Ini adalah pindah kiri dengan pengisian nol. Satu atau lebih digit nol dipindahkan dari kanan, dan digit terdepan dipindahkan keluar:
Desimal | Biner |
---|---|
5 | 00000000000000000000000000000101 |
5 << 1 | 00000000000000000000000000001010 (10) |
实例
var x = 5 << 1;
Pindah kiri dengan simbol (>>) dalam operasi bit JavaScript
Ini adalah pindah kiri yang mempertahankan simbol. Digit terkiri dipindahkan dari kiri, dan digit terakhir dipindahkan keluar:
Desimal | Biner |
---|---|
-5 | 11111111111111111111111111111011 |
-5 >> 1 | 11111111111111111111111111111101 (-3) |
实例
var x = -5 >> 1;
Pindah kiri dengan pengisian nol (>>>) dalam JavaScript
Ini adalah pindah kiri dengan pengisian nol. Satu atau lebih digit nol dipindahkan dari kiri, dan digit terakhir dipindahkan keluar:
Desimal | Biner |
---|---|
5 | 00000000000000000000000000000101 |
5 >>> 1 | 00000000000000000000000000000010 (2) |
实例
var x = 5 >>> 1;
Integer berbit 32-bit (bilangan biner)
Mengatur satu digit dalam bilangan integer 32-bit sangat mudah untuk dipahami:
二进制表示 | 十进制值 |
---|---|
00000000000000000000000000000001 | 1 |
00000000000000000000000000000010 | 2 |
00000000000000000000000000000100 | 4 |
00000000000000000000000000001000 | 8 |
00000000000000000000000000010000 | 16 |
00000000000000000000000000100000 | 32 |
00000000000000000000000001000000 | 64 |
多设置一些数位揭示了二进制的模式:
二进制表示 | 十进制值 |
---|---|
00000000000000000000000000000101 | 5 (4 + 1) |
00000000000000000000000000101000 | 40 (32 + 8) |
00000000000000000000000000101101 | 45 (32 + 8 + 4 + 1) |
负数是正数的二进制补码加 1:
二进制表示 | 十进制值 |
---|---|
00000000000000000000000000000101 | 5 |
11111111111111111111111111111011 | -5 |
00000000000000000000000000101000 | 40 |
11111111111111111111111111011000 | -40 |
11111111111111111111111111011001 | -41 |