Operatori JavaScript Bitwise (ar piemēriem)

Satura rādītājs

Š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 & 0ir 0
0 1 0 & 1ir 0
1 0 1 & 0ir 0
1 1 1 & 1ir 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 00000000000000000000000000001100un 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 ir00000000000000000000000000001100
  • Binārā vērtība 25 ir 00000000000000000000000000011001.
  • Veicot operāciju bitu UN , binārs rezultāts tiks 00000000000000000000000000001000pā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 | 0ir 0
0 1 0 | 1ir 1
1 0 1 | 0ir 1
1 1 1 | 1ir 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, 00000000000000000000000000011101kas 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 0ir 0
0 1 0 1ir 1
1 0 1 0ir 1
1 1 1 1ir 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, 00000000000000000000000000010101kas 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 11111111111111111111111111110011uz 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.

Viena bitu kreisā nobīde JavaScript

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.

Viena bite pa labi ar zīmju izplatīšanu aizpildiet JavaScript

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.

Viena bita labā nobīde ar nulli aizpildiet JavaScript

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

Interesanti raksti...