Bit-bitni operaterji JavaScript (s primeri)

V tej vadnici boste s pomočjo primerov spoznali bitne operatorje JavaScript in njegove vrste.

JavaScript bitni operaterji

Bit-operaterji njegove operande obravnavajo kot nabor 32-bitnih binarnih številk (ničle in enote) in izvajajo dejanja. Rezultat pa je prikazan kot decimalna vrednost.

Operaterji Ime Primer
& Bitovno AND x & y
| Bitovno ALI x | y
^ Bitno XOR x y
~ Bitno NE ~x
<< Levi shift x << y
>> Desni premik, ki širi znak x>> y
>>> Ničelno polnjenje v desno x>>> y

Opomba : Najmanjša in največja cela števila, ki jih je mogoče predstaviti prek 32-bitne podpisane številke, so od -2147483648 do 2147483647.

JavaScript v bitnih smereh IN

Bitno AND &vrne 1, če sta ustrezna bita obeh operandov 1, sicer vrne 0 .

Operand 1 Operand 2 IN delovanje
0 0 0 & 0je 0
0 1. 0 & 1je 0
1. 0 1 & 0je 0
1. 1. 1 & 1je 1

Oglejmo si bitno AND delovanje dveh celih števil 12 in 25 .

 V binarni obliki je 12 = 01100 25 = 11001 // Bit-bit in delovanje 12 in 25 00001100 & 00011001 --------- 00001000 = 8 (v decimalni številki)

Opomba : Pretvorba 12 v 32-bitno binarno datoteko nam daje 00000000000000000000000000001100in 25 daje 00000000000000000000000000011001. Vendar smo zaradi enostavnosti odstranili prejšnje ničle.

Primer 1: Bitni in operater

 // bitwise AND operator example let a = 12; let b = 25; result = a & b; console.log(result); // 8 

V zgornjem programu

  • Binarna vrednost 12 je00000000000000000000000000001100
  • Binarna vrednost 25 je 00000000000000000000000000011001.
  • Ko se izvede bitna operacija AND , bo binarni rezultat tisti, 00000000000000000000000000001000ki se pretvori v decimalno vrednost 8.

JavaScript v bitnih nastavitvah ALI

Bitno OR |vrne 1, če je kateri koli od ustreznih bitov enega operanda 1, sicer vrne 0 .

Operand 1 Operand 2 ALI Operacija
0 0 0 | 0je 0
0 1. 0 | 1je 1
1. 0 1 | 0je 1
1. 1. 1 | 1je 1

Oglejmo si bitno ALI operacijo dveh celih števil 12 in 25 .

V binarni obliki je 12 = 01100 25 = 11001 // Bitno ALI Operacija 12 in 25 00001100 | 00011001 -------- 00011101 = 29 (v decimalni številki)

Primer 2: Bitni ALI operater

 // bitwise OR operator example let a = 12; let b = 25; result = a | b; console.log(result); // 29

Ko se izvede bitna operacija ALI , bo binarni rezultat tisti, 00000000000000000000000000011101ki se pretvori v decimalno vrednost 29.

JavaScript v bitnih razmerah XOR

Bitno XOR ^vrne 1, če so ustrezni biti drugačni, in vrne 0, če so ustrezni biti enaki.

Operand 1 Operand 2 Delovanje XOR
0 0 0 0je 0
0 1. 0 1je 1
1. 0 1 0je 1
1. 1. 1 1je 0
 V binarni obliki je 12 = 01100 25 = 11001 // Bitorezno XOR Operacija 12 in 25 00001100 00011001 -------- 00010101 = 21 (v decimalni številki)

3. primer: Bitni operater XOR

 // bitwise XOR operator example let a = 12; let b = 25; result = a b; console.log(result); // 21

Ko se izvede bitna operacija XOR , bo binarni rezultat tisti, 00000000000000000000000000010101ki se pretvori v decimalno vrednost 21.

JavaScript Bit-bit NE

Bit bitno NE pretvori ~bit ( 0 postane 1 , 1 postane 0 ).

 V binarni obliki je 12 = 00000000000000000000000000001100 // Bit-bit Ne deluje 12 ~ 00000000000000000000000000001100 --------------------------------- 11111111111111111111111111110011 = -13 (v decimalni številki)

Med pretvorbo 11111111111111111111111111110011v decimalno vrednost bi bila 4294967283. Toda pri uporabi bitnega operatorja se vrednost izračuna v formatu dopolnila podpisanega 2, razen za premik v desno.

Komplement 2 izračunamo tako, da obrnemo bite (komplement 1) in nato dodamo 1 . Na primer

 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

V operaterju levega premika <<levi operand določa številko, desni operand pa številko, ki jo je treba premakniti levo. Na desno se dodajo nič bitov, odvečni deli leve pa se zavržejo.

En bit levega premika v JavaScript

Na primer

 let a = 8; let b = 1; result = a << b; // 1 ( 00000000000000000000000000010000 ) console.log(result);

Desni premik, ki širi znake JavaScript

V operaterju desnega premika >>prvi operand določi številko, drugi operand pa številko, ki jo je treba premakniti v desno. Presežni deli z desne se zavržejo. Kopije skrajnega levega bita se premaknejo z leve, zato se ime širi.

Eno bitni premik v desno s širjenjem znaka izpolni JavaScript

Na primer

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

JavaScript Zero-fill desni premik

Premik >>>v desno z ničelnim polnjenjem premakne operand v desno tako, da napolni nič bitov v levo. Presežni deli z desne se zavržejo.

Eno bitni premik v desno z nič izpolnite JavaScript

Na primer

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

Zanimive Članki...