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








