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

把十进制转换为二进制

实例

function dec2bin(dec){
    return (dec >>> 0).toString(2);
}

亲自试一试

把二进制转换为十进制

实例

function bin2dec(bin){
    return parseInt(bin, 2).toString(10);
}

亲自试一试