JavaScript bitni operateri (s primjerima)

U ovom ćete tutorijalu uz primjere naučiti o bitovnim operatorima JavaScript i njegovim vrstama.

JavaScript bitni operateri

Operatori u bitovima tretiraju njegove operande kao skup 32-bitnih binarnih znamenki (nula i jedinica) i izvode radnje. Međutim, rezultat je prikazan kao decimalna vrijednost.

Operateri Ime Primjer
& Bitno I x & y
| Bitno ILI x | y
^ Bitno XOR x y
~ Bitno NE ~x
<< Lijevi pomak x << y
>> Desni pomak koji se širi znakom x>> y
>>> Pomak udesno u nuli x>>> y

Napomena : Minimalni i maksimalni cijeli brojevi koji se mogu predstaviti putem 32-bitnog potpisanog broja su od -2147483648 do 2147483647.

JavaScript u bitovima I

Bitno I &vraća 1 ako su odgovarajući bitovi oba operanda 1, inače vraća 0 .

Operand 1 Operand 2 I Operacija
0 0 0 & 0je 0
0 1 0 & 1je 0
1 0 1 & 0je 0
1 1 1 & 1je 1

Pogledajmo bitni I rad dviju cijelih 12 i 25 .

 U binarnom obliku, 12 = 01100 25 = 11001 // Bitno i rad 12 i 25 00001100 & 00011001 --------- 00001000 = 8 (u decimalu)

Napomena : Pretvaranje 12 u 32-bitne binarne datoteke daje nam, 00000000000000000000000000001100a 25 daje 00000000000000000000000000011001. Međutim, radi jednostavnosti uklonili smo prethodne nule.

Primjer 1: Bitni I operator

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

U gornjem programu,

  • Binarna vrijednost 12 je00000000000000000000000000001100
  • Binarna vrijednost 25 je 00000000000000000000000000011001.
  • Kada se izvede bitna operacija AND , binarni rezultat bit će 00000000000000000000000000001000koji se pretvara u decimalnu vrijednost 8.

JavaScript u bitovima ILI

Bitno ILI |vraća 1 ako je jedan od odgovarajućih bitova jednog operanda 1, vraća 0 .

Operand 1 Operand 2 ILI Operacija
0 0 0 | 0je 0
0 1 0 | 1je 1
1 0 1 | 0je 1
1 1 1 | 1je 1

Pogledajmo bitovnu ILI operaciju dviju cijelih brojeva 12 i 25 .

U binarnom obliku, 12 = 01100 25 = 11001 // Bitno ILI rad 12 i 25 00001100 | 00011001 -------- 00011101 = 29 (u decimalu)

Primjer 2: Bitni ILI operator

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

Kada se izvede bitna ILI operacija, binarni rezultat bit će 00000000000000000000000000011101koji se pretvara u decimalnu vrijednost 29.

JavaScript bitni XOR

Bitno XOR ^vraća 1 ako su odgovarajući bitovi različiti i vraća 0 ako su odgovarajući bitovi isti.

Operand 1 Operand 2 XOR operacija
0 0 0 0je 0
0 1 0 1je 1
1 0 1 0je 1
1 1 1 1je 0
 U binarnom obliku, 12 = 01100 25 = 11001 // Bitovno XOR rad 12 i 25 00001100 00011001 -------- 00010101 = 21 (u decimalu)

Primjer 3: Bitni XOR operator

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

Kada se izvede bitna XOR operacija, binarni rezultat bit će 00000000000000000000000000010101koji se pretvara u decimalnu vrijednost 21.

JavaScript u bitovima NE

Bitno NE ~pretvara bit ( 0 postaje 1 , 1 postaje 0 ).

 U binarnom obliku, 12 = 00000000000000000000000000001100 // Bitwise Not Operation of 12 ~ 00000000000000000000000000001100 --------------------------------- 11111111111111111111111111110011 = -13 (u decimalu)

Tijekom pretvaranja 11111111111111111111111111110011u decimalni, vrijednost bi bila 4294967283. Ali kada se koristi bitni operator, vrijednost se izračunava u formatu komplementa s potpisanim 2, osim za pomak udesno s nulom.

Komplement 2 izračunava se invertiranjem bitova (komplement 1) i dodavanjem 1 . Na primjer,

 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

U operateru lijevog pomaka <<, lijevi operand navodi broj, a desni operand broj koji se pomiče ulijevo. Nula bitova dodaju se udesno, a višak bitova ulijevo odbacuje.

Jedan pomak ulijevo u JavaScriptu

Na primjer,

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

JavaScript smjena koja se širi udesno

U operateru desnog pomaka >>, prvi operand navodi broj, a drugi operand broj koji treba pomaknuti udesno. Višak bitova s ​​desne strane se odbacuje. Kopije krajnjeg lijevog bita pomaknute su s lijeve strane, pa otuda i naziv koji se širi.

Jedan bitni pomak udesno sa znakom koji se širi ispunite JavaScript

Na primjer,

 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 pomak

Zero ubacivanje pravo smjene >>>smjene operanda na desnoj strani ispunjavanjem nula bita na lijevo. Višak bitova s ​​desne strane se odbacuje.

Jedan bitni pomak udesno s nulom ispunite JavaScript

Na primjer,

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

Zanimljivi članci...