Operatori JavaScript bitwise (cu exemple)

În acest tutorial, veți afla despre operatorii bit-bit JavaScript și tipurile sale cu ajutorul exemplelor.

Operatori JavaScript Bitwise

Operatorii bitwise își tratează operanzii ca pe un set de cifre binare pe 32 de biți (zerouri și unele) și efectuează acțiuni. Cu toate acestea, rezultatul este afișat ca o valoare zecimală.

Operatori Nume Exemplu
& Bitwise ȘI x & y
| OR bit x | y
^ Bitwise XOR x y
~ Bitwise NU ~x
<< Shift stânga x << y
>> Schimbarea la dreapta a propagării semnelor x>> y
>>> Schimbare zero la dreapta x>>> y

Notă : numerele întregi minime și maxime care pot fi reprezentate printr-un număr semnat pe 32 de biți sunt de la -2147483648 la 2147483647.

JavaScript bitwise ȘI

Bitwise ȘI &returnează 1 dacă biții corespunzători ai ambilor operanzi sunt 1 altceva returnează 0 .

Operand 1 Operandul 2 ȘI Funcționare
0 0 0 & 0este 0
0 1 0 & 1este 0
1 0 1 & 0este 0
1 1 1 & 1este 1

Să aruncăm o privire la operațiunea bit și ȘI a două numere întregi 12 și 25 .

 În binar, 12 = 01100 25 = 11001 // În funcție de bit ȘI Funcționarea 12 și 25 00001100 și 00011001 --------- 00001000 = 8 (În zecimal)

Notă : Conversia binară de 12 la 32 de biți ne oferă 00000000000000000000000000001100și 2500000000000000000000000000011001. Cu toate acestea, am eliminat zerourile precedente pentru simplitate.

Exemplul 1: Operator bit și bit

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

În programul de mai sus,

  • Valoarea binară 12 este00000000000000000000000000001100
  • Valoarea binară de 25 este 00000000000000000000000000011001.
  • Când se efectuează operația AND în biți , rezultatul binar va fi cel 00000000000000000000000000001000care se transformă în valoarea zecimală 8.

JavaScript bitwise SAU

Bit bit OR |returnează 1 dacă oricare dintre biții corespunzători ai unui operand este 1 altceva returnează 0 .

Operand 1 Operandul 2 SAU Operațiune
0 0 0 | 0este 0
0 1 0 | 1este 1
1 0 1 | 0este 1
1 1 1 | 1este 1

Să aruncăm o privire la operația SAU în biți a două numere întregi 12 și 25 .

În binar, 12 = 01100 25 = 11001 // În funcție de biți SAU Operațiunea 12 și 25 00001100 | 00011001 -------- 00011101 = 29 (În zecimal)

Exemplul 2: Operator OR în biți

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

Când se efectuează operația SAU bit , rezultatul binar va fi cel 00000000000000000000000000011101care se transformă în valoarea zecimală 29.

JavaScript Bitwise XOR

Bitwise XOR ^returnează 1 dacă biții corespunzători sunt diferiți și returnează 0 dacă biții corespunzători sunt aceiași.

Operand 1 Operandul 2 Operațiune XOR
0 0 0 0este 0
0 1 0 1este 1
1 0 1 0este 1
1 1 1 1este 0
 În binar, 12 = 01100 25 = 11001 // Operațiune XOR pe biți de 12 și 25 00001100 00011001 -------- 00010101 = 21 (În zecimal)

Exemplul 3: Operator Bitwise XOR

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

Când se efectuează operația XOR în biți , rezultatul binar va fi cel 00000000000000000000000000010101care se transformă în valoarea zecimală 21.

JavaScript Bitwise NU

Bitwise NU ~inversează bitul ( 0 devine 1 , 1 devine 0 ).

 În binar, 12 = 00000000000000000000000000001100 // În funcție de bit, 12 ~ 00000000000000000000000000001100 --------------------------------- 11111111111111111111111111110011 = -13 (În zecimal)

În timp ce 11111111111111111111111111110011faceți conversia în zecimal, valoarea ar fi 4294967283. Dar atunci când se utilizează operatorul bit, valoarea este calculată în formatul complementului semnat 2, cu excepția deplasării la dreapta cu completare zero.

Complementul lui 2 se calculează inversând biții (complementul lui 1) și apoi adăugând 1 . De exemplu,

 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

În operatorul de schimbare stânga <<, operandul din stânga specifică numărul, iar operandul din dreapta specifică numărul care trebuie deplasat la stânga. La dreapta se adaugă biți zero și se elimină biții în exces din stânga.

Un pic stânga schimbare în JavaScript

De exemplu,

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

Javascript Propagarea semnelor schimbarea la dreapta

În operatorul de schimbare la dreapta >>, primul operand specifică numărul, iar al doilea operand specifică numărul care trebuie deplasat la dreapta. Excesul de biți din dreapta este aruncat. Copiile bitului din stânga sunt deplasate din stânga, de unde și numele de propagare a semnelor.

O schimbare la dreapta pe un bit cu propagarea semnului completează JavaScript

De exemplu,

 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 turn shift dreapta

Deplasarea zero la deplasarea la dreapta >>>deplasează operandul spre dreapta prin umplerea celor zero biți spre stânga. Excesul de biți din dreapta este aruncat.

Shift dreapta cu un bit cu completare zero în JavaScript

De exemplu,

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

Articole interesante...