JavaScript Bitwise-operatører (med eksempler)

Indholdsfortegnelse

I denne vejledning lærer du om JavaScript bitvis operatører og dens typer ved hjælp af eksempler.

JavaScript Bitwise-operatører

Bitvis operatører behandler dets operander som et sæt af 32-bit binære cifre (nuller og en) og udfører handlinger. Resultatet vises dog som en decimalværdi.

Operatører Navn Eksempel
& Bitvis OG x & y
| Bitvis ELLER x | y
^ Bitvis XOR x y
~ Bitvis IKKE ~x
<< Venstre skift x << y
>> Tegnforplantende højre skift x>> y
>>> Nul-udfyld højre skift x>>> y

Bemærk : Mindste og maksimale heltal, der kan repræsenteres gennem et 32-bit underskrevet nummer, er -2147483648 til 2147483647.

JavaScript bitvis OG

Bitvis OG &returnerer 1, hvis de tilsvarende bits i begge operander er 1 andet, returnerer den 0 .

Operand 1 Operand 2 OG Betjening
0 0 0 & 0er 0
0 1 0 & 1er 0
1 0 1 & 0er 0
1 1 1 & 1er 1

Lad os se på den bitvise OG-operation af to heltal 12 og 25 .

 I binær, 12 = 01100 25 = 11001 // Bitvis OG betjening af 12 og 25 00001100 & 00011001 --------- 00001000 = 8 (i decimal)

Bemærk : Konvertering af 12 til 32-bit binær giver os 00000000000000000000000000001100og 25 giver 00000000000000000000000000011001. Vi har dog fjernet de foregående nuller for enkelhedens skyld.

Eksempel 1: Bitvis OG operatør

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

I ovenstående program,

  • Den binære værdi på 12 er00000000000000000000000000001100
  • Den binære værdi på 25 er 00000000000000000000000000011001.
  • Når bitvis OG- operation udføres, vil det binære resultat være det, 00000000000000000000000000001000der konverterer til decimalværdien 8.

JavaScript bitvis ELLER

Bitvis ELLER |returnerer 1, hvis en af ​​de tilsvarende bits i en operand er 1 andet, returnerer 0 .

Operand 1 Operand 2 ELLER Betjening
0 0 0 | 0er 0
0 1 0 | 1er 1
1 0 1 | 0er 1
1 1 1 | 1er 1

Lad os se på den bitvise ELLER operation af to heltal 12 og 25 .

I binær, 12 = 01100 25 = 11001 // Bitvis ELLER Betjening af 12 og 25 00001100 | 00011001 -------- 00011101 = 29 (i decimal)

Eksempel 2: Bitvis ELLER operatør

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

Når bitvis ELLER- operation udføres, vil det binære resultat være det, 00000000000000000000000000011101der konverterer til decimalværdien 29.

JavaScript Bitwise XOR

Bitvis XOR ^returnerer 1, hvis de tilsvarende bits er forskellige, og returnerer 0, hvis de tilsvarende bits er de samme.

Operand 1 Operand 2 XOR-drift
0 0 0 0er 0
0 1 0 1er 1
1 0 1 0er 1
1 1 1 1er 0
 I binær, 12 = 01100 25 = 11001 // Bitvis XOR-drift af 12 og 25 00001100 00011001 -------- 00010101 = 21 (i decimal)

Eksempel 3: Bitvis XOR-operatør

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

Når bitvis XOR- operation udføres, vil det binære resultat være det, 00000000000000000000000000010101der konverteres til decimalværdien 21.

JavaScript bitvis IKKE

Bitvis ~vender IKKE biten om ( 0 bliver 1 , 1 bliver 0 ).

 I binær, 12 = 00000000000000000000000000001100 // Bitvis ikke drift af 12 ~ 00000000000000000000000000001100 --------------------------------- 11111111111111111111111111110011 = -13 (i decimal)

Under konvertering 11111111111111111111111111110011til decimal ville værdien være 4294967283. Men når du bruger bitvis operator, beregnes værdien i signeret 2's komplementformat undtagen nul-udfyld højre skift.

2's komplement beregnes ved at vende bitene (1's komplement) og derefter tilføje 1 . For eksempel,

 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

I <<venstre skiftoperatør angiver venstre operand nummeret og højre operand specificerer det nummer, der skal skiftes til venstre. Nul bit tilføjes til højre, og overskydende bits fra venstre kasseres.

Én bit venstre skift i JavaScript

For eksempel,

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

JavaScript Højre forskydning med tegnudbredelse

I højre >>skiftoperatør specificerer den første operand antallet og den anden operand angiver det nummer, der skal skiftes til højre. Overskydende bits fra højre kasseres. Kopierne af den venstre bit bit flyttes ind fra venstre, deraf navnet-formering.

En smule højre skift med tegnformering udfyld JavaScript

For eksempel,

 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 Nul-udfyld højre skift

Nuludfyld højre skift >>>skifter operanden til højre ved at udfylde nul bitene til venstre. Overskydende bits fra højre kasseres.

Én bit højre skift med nul udfyld JavaScript

For eksempel,

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

Interessante artikler...