JavaScripti bitipõhised operaatorid (koos näidetega)

Lang L: none (table-of-contents)

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 & 0on 0
0 1 0 & 1on 0
1 0 1 & 0on 0
1 1 1 & 1on 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 00000000000000000000000000001100ja 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 on00000000000000000000000000001100
  • Binaarväärtus 25 on 00000000000000000000000000011001.
  • Kui tehakse bitipõhine JA- toiming, on binaarne tulemus, 00000000000000000000000000001000mis 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 | 0on 0
0 1 0 | 1on 1
1 0 1 | 0on 1
1 1 1 | 1on 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, 00000000000000000000000000011101mis 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 0on 0
0 1 0 1on 1
1 0 1 0on 1
1 1 1 1on 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, 00000000000000000000000000010101mis 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)

11111111111111111111111111110011Kü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.

Üks natuke vasakut nihet JavaScripti

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.

Üks natuke paremnihe koos märkide levitamisega täida JavaScript

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.

Ühe bitiga parem nihe nulliga täitke JavaScript

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);

Huvitavad Artiklid...