Šajā apmācībā jūs uzzināsit par JavaScript bitkuru operatoriem un to veidiem, izmantojot piemērus.
JavaScript Bitwise operatori
Operatori Bitwise izturas pret tā operandiem kā 32 bitu bināro ciparu (nulles un viens) kopu un veic darbības. Tomēr rezultāts tiek parādīts kā decimālvērtība.
Operatori | Nosaukums | Piemērs |
---|---|---|
& | Bitu virzienā UN | x & y |
| | Bitwise OR | x | y |
^ | Bitor XOR | x y |
~ | Bitwise NĒ | ~x |
<< | Kreisā maiņa | x << y |
>> | Ar zīmēm izplatīta labā nobīde | x>> y |
>>> | Nulles aizpildīšanas labā maiņa | x>>> y |
Piezīme . Minimālie un maksimālie veseli skaitļi, kurus var attēlot, izmantojot 32 bitu parakstītu skaitli, ir no -2147483648 līdz 2147483647.
JavaScript Bitwise UN
Bitwise AND &
atgriež 1, ja abu operandu atbilstošie biti ir 1 cits, tas atgriež 0 .
Operands 1 | Operands 2 | UN darbība |
---|---|---|
0 | 0 | 0 & 0 ir 0 |
0 | 1 | 0 & 1 ir 0 |
1 | 0 | 1 & 0 ir 0 |
1 | 1 | 1 & 1 ir 1 |
Apskatīsim divu veselu skaitļu 12 un 25 bitu darbību .
Binārā 12 = 01100 25 = 11001 // 12 un 25 pa bitiem UN darbība 00001100 un 00011001 --------- 00001000 = 8 (decimāldaļās)
Piezīme : Konvertējot 12 uz 32 bitu bināros, iegūstam 00000000000000000000000000001100
un 25 dod 00000000000000000000000000011001
. Tomēr vienkāršības labad esam noņēmuši iepriekšējās nulles.
1. piemērs: Bitwise AND operators
// bitwise AND operator example let a = 12; let b = 25; result = a & b; console.log(result); // 8
Iepriekš minētajā programmā
- Binārā vērtība 12 ir
00000000000000000000000000001100
- Binārā vērtība 25 ir
00000000000000000000000000011001
. - Veicot operāciju bitu UN , binārs rezultāts tiks
00000000000000000000000000001000
pārveidots par decimāldaļu 8.
JavaScript Bitwise OR
Bitu izteiksmē OR |
atgriež 1, ja viens no operanda atbilstošajiem bitiem ir 1, bet cits atgriež 0 .
Operands 1 | Operands 2 | VAI darbība |
---|---|---|
0 | 0 | 0 | 0 ir 0 |
0 | 1 | 0 | 1 ir 1 |
1 | 0 | 1 | 0 ir 1 |
1 | 1 | 1 | 1 ir 1 |
Apskatīsim divu veselu skaitļu 12 un 25 bitu darbību OR .
Binārā 12 = 01100 25 = 11001 // 12 un 25 bitu paņēmiena OR darbība 12 00001100 | 00011001 -------- 00011101 = 29 (aiz komata)
2. piemērs: Operators pa bitiem
// bitwise OR operator example let a = 12; let b = 25; result = a | b; console.log(result); // 29
Veicot operāciju pa bitiem VAI , tiks iegūts binārais rezultāts, 00000000000000000000000000011101
kas pārvērš decimāldaļās 29.
JavaScript Bitwise XOR
Bitiski XOR ^
atgriež 1, ja atbilstošie biti ir atšķirīgi, un 0, ja atbilstošie biti ir vienādi.
Operands 1 | Operands 2 | XOR darbība |
---|---|---|
0 | 0 | 0 0 ir 0 |
0 | 1 | 0 1 ir 1 |
1 | 0 | 1 0 ir 1 |
1 | 1 | 1 1 ir 0 |
Binārā 12 = 01100 25 = 11001 // 12 un 25 darbība pa bitiem XOR 00001100 00011001 -------- 00010101 = 21 (aiz komata)
3. piemērs: Operators Bitwise XOR
// bitwise XOR operator example let a = 12; let b = 25; result = a b; console.log(result); // 21
Veicot XOR operāciju bitu bitu veidā , tiks iegūts binārais rezultāts, 00000000000000000000000000010101
kas pārvērš decimāldaļās 21.
JavaScript Bitwise NAV
Bitu virzienā NAV ~
apgriež bitu ( 0 kļūst par 1 , 1 kļūst par 0 ).
Binārā 12 = 000000000000000000000000000000001100 // Nedarbojas ar 12 ~ 00000000000000000000000000000000000000 -------------------------------- -13 (aiz komata)
Konvertējot 11111111111111111111111111110011
uz decimāldaļu, vērtība būtu 4294967283. Bet, lietojot operatoru pa bitiem, vērtība tiek aprēķināta parakstītā 2 papildinājuma formātā, izņemot nulles aizpildīšanas labo nobīdi.
2 papildinājums tiek aprēķināts, apgriežot bitus (1 papildinājums) un pēc tam pievienojot 1 . Piemēram,
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
Kreisās maiņas operatorā <<
kreisais operands norāda numuru, bet labais operands - pa kreisi. Nulles biti tiek pievienoti labajā pusē un liekie biti no kreisās puses tiek izmesti.

Piemēram,
let a = 8; let b = 1; result = a << b; // 1 ( 00000000000000000000000000010000 ) console.log(result);
JavaScript zīmju pavairošana pa labi
Labās maiņas operatorā >>
pirmais operands norāda numuru un otrais operands norāda numuru, kas jāpārvieto pa labi. Liekie biti no labās puses tiek izmesti. Kreisākā bita kopijas tiek pārvietotas no kreisās puses, tāpēc tiek izplatīts nosaukums.

Piemēram,
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 Nulles aizpildīšana labajā pusē
Nulles aizpildīšana ar labo pusi >>>
nobīda operandu pa labi, aizpildot nulles bitus pa kreisi. Liekie biti no labās puses tiek izmesti.

Piemēram,
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);