Vifaa vya Kibali cha JavaScript
- Pya zaidi Kusoma kwa urahisi
- Pya zaidi Marejeo ya kirekebisha ya JS
Vifaa vya Kibali cha JavaScript
运算符 | 名称 | 描述 |
---|---|---|
& | AND | 如果两位都是 1 则设置每位为 1 |
| | OR | 如果两位之一为 1 则设置每位为 1 |
^ | XOR | 如果两位只有一位为 1 则设置每位为 1 |
~ | NOT | 反转所有位 |
<< | 零填充左位移 | 通过从右推入零向左位移,并使最左边的位脱落。 |
>> | 有符号右位移 | 通过从左推入最左位的拷贝来向右位移,并使最右边的位脱落。 |
>>> | 零填充右位移 | 通过从左推入零来向右位移,并使最右边的位脱落。 |
Mifano
Mashirika | Matokeo | inaonekana kama | Matokeo |
---|---|---|---|
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 inatumia viwanda vya mabaya vya 32 vingine
JavaScript inasafiri namba kama namba za 64 vingine za tukio, lakini viwakiliano vya mabaya vinaendelea kwa namba za 32 vingine za binari.
Kwenye uendeshaji wa viwakiliano wa mabaya, JavaScript inatumia namba za 32 vingine za kina.
Baada ya kufanya mashirika wa mabaya, matokeo huitokana na namba za 64 vingine za JavaScript.
Mfano wa juu una tumia namba za vingine za 4 vya binari vya kina.
Kwa sababu JavaScript inatumia viwanda vya kina vya 32 vingine, JavaScript inatokana na -6.
00000000000000000000000000000101 (5)
11111111111111111111111111111010 (~5 = -6)
Viwanda vya kina vinaendelea kwa mabaya wa kina kwa namba vya kina.
Viwakiliano wa mabaya AND
Kama viwakiliano wa mabaya AND kati ya namba zinaonekana kama 1, namba zinaonekana kama 1 inaunda 1.
Mfano wa viwanda:
Mashirika | Matokeo |
---|---|
0 & 0 | 0 |
0 & 1 | 0 |
1 & 0 | 0 |
1 & 1 | 1 |
Mfano wa mabaya:
Mashirika | Matokeo |
---|---|
1111 & 0000 | 0000 |
1111 & 0001 | 0001 |
1111 & 0010 | 0010 |
1111 & 0100 | 0100 |
Viwakiliano wa mabaya OR
Kama viwakiliano wa mabaya OR kati ya namba zinaonekana kama 1, namba zinaonekana kama 1 inaunda 1:
Mfano wa viwanda
Mashirika | Matokeo |
---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 1 |
Mfano wa mabaya:
Mashirika | Matokeo |
---|---|
1111 | 0000 | 1111 |
1111 | 0001 | 1111 |
1111 | 0010 | 1111 |
1111 | 0100 | 1111 |
Viwakiliano wa mabaya XOR
Kama viwakiliano wa mabaya XOR kati ya namba zinaonekana kama 1, namba zinaonekana kama 1 inaunda 1:
Mfano wa viwanda:
Mashirika | Matokeo |
---|---|
0 ^ 0 | 0 |
0 ^ 1 | 1 |
1 ^ 0 | 1 |
1 ^ 1 | 0 |
Mfano wa mabaya:
Mashirika | Matokeo |
---|---|
1111 ^ 0000 | 1111 |
1111 ^ 0001 | 1110 |
1111 ^ 0010 | 1101 |
1111 ^ 0100 | 1011 |
JavaScript viwakiliano wa mabaya AND (&)
Iki kati ya namba zinaonekana kama 1, viwakiliano wa mabaya AND (&) inaunda 1:
Decimal | Binary |
---|---|
5 | 00000000000000000000000000000101 |
1 | 00000000000000000000000000000001 |
5 & 1 | 00000000000000000000000000000001 (1) |
Mifano
var x = 5 & 1;
JavaScript viwakiliano wa mabaya OR (|)
Kama mmoja ya namba zimezungumza ina 1, OR inaruhusu 1:
Decimal | Binary |
---|---|
5 | 00000000000000000000000000000101 |
1 | 00000000000000000000000000000001 |
5 | 1 | 00000000000000000000000000000101 (5) |
Mifano
var x = 5 | 1;
JavaScript bitwise XOR (^)
Kama namba zimezungumza, XOR inaruhusu 1:
Decimal | Binary |
---|---|
5 | 00000000000000000000000000000101 |
1 | 00000000000000000000000000000001 |
5 ^ 1 | 00000000000000000000000000000100 (4) |
Mifano
var x = 5 ^ 1;
JavaScript bitwise NOT (~)
Decimal | Binary |
---|---|
5 | 00000000000000000000000000000101 |
~5 | 11111111111111111111111111111010 (-6) |
Mifano
var x = ~5;
JavaScript (zero-filled) bitwise left shift (<<)
Hii ni kusaidia na namba nene zilizopita inayotumia namba nane kutoka kushoto. Inavyotumia namba nene kutoka kushoto, namba kikuu inatumiwa kusaidia kwenye uharibifu:
Decimal | Binary |
---|---|
5 | 00000000000000000000000000000101 |
5 << 1 | 00000000000000000000000000001010 (10) |
Mifano
var x = 5 << 1;
JavaScript (signed) bitwise right shift (>>)
Hii ni kusaidia na namba nene zilizopita inayotumia kiwango cha namba nene. Namba kikuu inayotumika inatumiwa kutoka kushoto, namba kikuu inaendelea kwenye nafasi inayotumika kwenye uharibifu:
Decimal | Binary |
---|---|
-5 | 11111111111111111111111111111011 |
-5 >> 1 | 11111111111111111111111111111101 (-3) |
Mifano
var x = -5 >> 1;
JavaScript (zero-filled) right shift (>>>)
Hii ni kusaidia na zilizopita zilizotumia namba nje ya mawimbi. Inavyotumia namba nane kutoka kushoto, namba kikuu inayotumika inaendelea kwenye nafasi inayotumika kwenye uharibifu:
Decimal | Binary |
---|---|
5 | 00000000000000000000000000000101 |
5 >>> 1 | 00000000000000000000000000000010 (2) |
Mifano
var x = 5 >>> 1;
32-bit signed integer (binary number)
Inafikia inaonyesha kwa kumtaarifu kiwango cha 32 wakati kwa nafasi moja inayofaa kwa urahisi:
Muonekano wa binari | Wandiko wa sita |
---|---|
00000000000000000000000000000001 | 1 |
00000000000000000000000000000010 | 2 |
00000000000000000000000000000100 | 4 |
00000000000000000000000000001000 | 8 |
00000000000000000000000000010000 | 16 |
00000000000000000000000000100000 | 32 |
00000000000000000000000001000000 | 64 |
Kumekadiriwa kwa vifaa vya namba vya zaidi inatokana na mpangilio wa binari:
Muonekano wa binari | Wandiko wa sita |
---|---|
00000000000000000000000000000101 | 5 (4 + 1) |
00000000000000000000000000101000 | 40 (32 + 8) |
00000000000000000000000000101101 | 45 (32 + 8 + 4 + 1) |
Wenyeji wengi ni mabaki ya binari ya wanaoonekana na 1:
Muonekano wa binari | Wandiko wa sita |
---|---|
00000000000000000000000000000101 | 5 |
11111111111111111111111111111011 | -5 |
00000000000000000000000000101000 | 40 |
11111111111111111111111111011000 | -40 |
11111111111111111111111111011001 | -41 |
Kuchukua kwenye vifaa vya sita kwenda vifaa vya binari
Mifano
function dec2bin(dec){ return (dec >>> 0).toString(2); }
Kuchukua kwenye vifaa vya binari kwenda vifaa vya sita
Mifano
function bin2dec(bin){ return parseInt(bin, 2).toString(10); }
- Pya zaidi Kusoma kwa urahisi
- Pya zaidi Marejeo ya kirekebisha ya JS