Selles õpetuses saate näidete abil õppida JavaScripti bitipõhiseid operaatoreid ja nende tüüpe.
JavaScripti bitipõhised operaatorid
Bitipõhised operaatorid käsitlevad selle operande 32-bitiste kahendarvude (nullid ja ühed) kogumina ning täidavad toiminguid. Tulemust näidatakse aga kümnendarvuna.
Operaatorid | Nimi | Näide |
---|---|---|
& | Pikkade kaupa JA | x & y |
| | Piki VÕI | x | y |
^ | Piki XOR | x y |
~ | Bititi EI | ~x |
<< | Vasak Shift | x << y |
>> | Märke levitav parempoolne nihe | x>> y |
>>> | Parempoolne nihe nulliga | x>>> y |
Märkus . Minimaalsed ja maksimaalsed täisarvud, mis on esindatavad 32-bitise allkirjastatud numbri kaudu, on -2147483648 kuni 2147483647.
JavaScripti biti kaupa JA
Biti kaupa &
tagastab AND 1, kui mõlema operandi vastavad bitid on 1, tagastab see 0 .
Operand 1 | Operand 2 | JA operatsioon |
---|---|---|
0 | 0 | 0 & 0 on 0 |
0 | 1 | 0 & 1 on 0 |
1 | 0 | 1 & 0 on 0 |
1 | 1 | 1 & 1 on 1 |
Heidame pilgu kahe täisarvu 12 ja 25 bitipõhisele toimingule .
Binaararvus 12 = 01100 25 = 11001 // Pikkade JA 12 ja 25 toimimine 00001100 ja 00011001 --------- 00001000 = 8 (kümnendkohaga)
Märkus : teisendades 12 -bitiseks binaarseks annab meile 00000000000000000000000000001100
ja 25 annab 00000000000000000000000000011001
. Kuid lihtsuse huvides oleme eelnevad nullid eemaldanud.
Näide 1: bitipõhine JA operaator
// bitwise AND operator example let a = 12; let b = 25; result = a & b; console.log(result); // 8
Ülaltoodud programmis
- Binaarväärtus 12 on
00000000000000000000000000001100
- Binaarväärtus 25 on
00000000000000000000000000011001
. - Kui tehakse bitipõhine JA- toiming, on binaarne tulemus,
00000000000000000000000000001000
mis teisendatakse kümnendarvuks 8.
JavaScripti bitipõhine VÕI
Biti kaupa |
tagastab OR 1, kui ühe operandi kumbki vastav bitt on 1, tagastab 0 .
Operand 1 | Operand 2 | VÕI operatsioon |
---|---|---|
0 | 0 | 0 | 0 on 0 |
0 | 1 | 0 | 1 on 1 |
1 | 0 | 1 | 0 on 1 |
1 | 1 | 1 | 1 on 1 |
Heidame pilgu kahe täisarvu 12 ja 25 bitipõhisele VÕI toimingule .
Binaarses vormis 12 = 01100 25 = 11001 // Piki kaupa VÕI operatsioon 12 ja 25 00001100 | 00011001 -------- 00011101 = 29 (kümnendkohaga)
Näide 2: biti kaupa VÕI operaator
// bitwise OR operator example let a = 12; let b = 25; result = a | b; console.log(result); // 29
Kui tehakse bitipõhine VÕI operatsioon, on binaarne tulemus, 00000000000000000000000000011101
mis teisendatakse kümnendarvuks 29.
JavaScript Bitwise XOR
Bititi XOR ^
tagastab 1, kui vastavad bitid on erinevad, ja 0, kui vastavad bitid on samad.
Operand 1 | Operand 2 | Operatsioon XOR |
---|---|---|
0 | 0 | 0 0 on 0 |
0 | 1 | 0 1 on 1 |
1 | 0 | 1 0 on 1 |
1 | 1 | 1 1 on 0 |
Binaarses väärtuses 12 = 01100 25 = 11001 // Toimingud bitide kaupa XOR-ga 12 ja 25 00001100 00011001 -------- 00010101 = 21 (kümnendkohaga)
Näide 3: Operaator Bitwise XOR
// bitwise XOR operator example let a = 12; let b = 25; result = a b; console.log(result); // 21
Kui teostatakse XOR-i bittide kaupa , on binaarne tulemus, 00000000000000000000000000010101
mis teisendatakse kümnendarvuks 21.
JavaScripti bititi EI
Biti kaupa EI ~
pöörab bitti ümber ( 0 saab 1 , 1 saab 0 ).
Binaarses vormis 12 = 000000000000000000000000000000001100 // ei toimu 12 ~ 000000000000000000000000000000000000 -------------------------------- 1111111111111111111111111111110011 = -13 (kümnendkohaga)
11111111111111111111111111110011
Kümnendarvuks teisendamise korral oleks väärtus 4294967283. Kuid bitipõhise operaatori kasutamisel arvutatakse väärtus signeeritud 2 komplemendi vormingus, välja arvatud parempoolne nihe.
2 komplemendi arvutamiseks pööratakse bitid (1 komplement) ja lisatakse seejärel 1 . Näiteks,
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
Vasakul nihe operaator <<
, vasakul operandi täpsustab arvu ja parempoolne operand Määrab tuleb nihutada vasakule. Paremale lisatakse nullbitid ja vasakult liigsed bitid visatakse ära.

Näiteks,
let a = 8; let b = 1; result = a << b; // 1 ( 00000000000000000000000000010000 ) console.log(result);
JavaScripti märkidega leviv parempoolne nihe
Parempoolse >>
nihkeoperaatoris määrab esimene operand numbri ja teine operand paremale nihutatava numbri. Parempoolsed liigsed bitid visatakse ära. Vasakpoolseima biti koopiad nihutatakse vasakult, seega levib nimemärk.

Näiteks,
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);
JavaScripti nullitäitmine paremale
Nulltäitega paremnihe >>>
nihutab operandi paremale, täites nullibitid vasakule. Parempoolsed liigsed bitid visatakse ära.

Näiteks,
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);