JavaScript Bitwise-operatører (med eksempler)

Innholdsfortegnelse

I denne opplæringen vil du lære om JavaScript bitvis operatører og dens typer ved hjelp av eksempler.

JavaScript Bitwise-operatører

Bitvis operatører behandler operandene som et sett med 32-bits binære sifre (nuller og en) og utfører handlinger. Resultatet vises imidlertid som en desimalverdi.

Operatører Navn Eksempel
& Bitvis OG x & y
| Bitvis ELLER x | y
^ Bitvis XOR x y
~ Bitvis IKKE ~x
<< Venstre shift x << y
>> Skiltforplantende høyre skift x>> y
>>> Null fyll høyre skift x>>> y

Merk : Minimums- og maksimums heltall som kan representeres gjennom et 32-bits signert nummer er -2147483648 til 2147483647.

JavaScript bitvis OG

Bitvis OG &returnerer 1 hvis de tilsvarende bitene i begge operandene er 1 annet, returnerer den 0 .

Operand 1 Operand 2 OG Drift
0 0 0 & 0er 0
0 1 0 & 1er 0
1 0 1 & 0er 0
1 1 1 & 1er 1

La oss ta en titt på bitvis OG-operasjon av to heltall 12 og 25 .

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

Merk : Konvertering av 12 til 32-bit binær gir oss 00000000000000000000000000001100og 25 gir 00000000000000000000000000011001. Vi har imidlertid fjernet de foregående nullene for enkelhets 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 programmet ovenfor,

  • Den binære verdien på 12 er00000000000000000000000000001100
  • Den binære verdien på 25 er 00000000000000000000000000011001.
  • Når bitvis OG- operasjon utføres, vil det binære resultatet være det 00000000000000000000000000001000som konverterer til desimalverdien 8.

JavaScript bitvis ELLER

Bitvis ELLER |returnerer 1 hvis en av de tilsvarende bitene i en operand er 1 annet returnerer 0 .

Operand 1 Operand 2 ELLER drift
0 0 0 | 0er 0
0 1 0 | 1er 1
1 0 1 | 0er 1
1 1 1 | 1er 1

La oss ta en titt på bitvis ELLER-operasjon av to heltall 12 og 25 .

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

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 operasjon utføres, vil det binære resultatet være det 00000000000000000000000000011101som konverterer til desimalverdien 29.

JavaScript Bitwise XOR

Bitvis XOR ^returnerer 1 hvis de tilsvarende bitene er forskjellige, og returnerer 0 hvis de tilsvarende bitene 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 av 12 og 25 00001100 00011001 -------- 00010101 = 21 (i desimal)

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- operasjon utføres, vil det binære resultatet være det 00000000000000000000000000010101som konverterer til desimalverdien 21.

JavaScript Bitwise IKKE

Bitvis ~inverterer ikke biten ( 0 blir 1 , 1 blir 0 ).

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

Mens du konverterer 11111111111111111111111111110011til desimal, vil verdien være 4294967283. Men når du bruker bitvis operator, blir verdien beregnet i signert 2s komplementformat bortsett fra null-fyll høyre skift.

2s komplement beregnes ved å invertere bitene (1's komplement) og deretter legge til 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 <<spesifiserer venstre operand nummeret og høyre operand spesifiserer nummeret som skal skiftes til venstre. Null biter legges til høyre og overflødige biter fra venstre kastes.

En bit venstre skift i JavaScript

For eksempel,

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

JavaScript Tegnforplantende høyre skift

I høyre skiftoperatør >>spesifiserer den første operanden nummeret og den andre operanden spesifiserer nummeret som skal skiftes til høyre. Overflødige biter fra høyre kastes. Kopiene av den venstre biten flyttes inn fra venstre, derav navnet forplantning.

En rett skift med skiltutbredelse, fyll ut 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 Zero-fill høyre skift

Nullfyll høyre skift >>>skifter operanden til høyre ved å fylle nullbitene til venstre. Overflødige biter fra høyre kastes.

En bit høyre skift med null utfylling av 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...