JavaScript bitenkénti operátorok (példákkal)

Ebben az oktatóanyagban példák segítségével megismerheti a JavaScript bitenkénti operátorait és típusait.

JavaScript bitenkénti operátorok

A bitenkénti operátorok operandusait 32 bites bináris számok (nullák és egyek) halmazaként kezelik, és műveleteket hajtanak végre. Az eredmény azonban tizedesértékként jelenik meg.

Operátorok Név Példa
& Bitenkénti ÉS x & y
| Bitenként VAGY x | y
^ Bitenként XOR x y
~ Bitenként NEM ~x
<< Bal Shift x << y
>> Jeltovábbító jobb váltás x>> y
>>> Nulla kitöltés jobb váltás x>>> y

Megjegyzés : A 32 bites aláírt számon keresztül reprezentálható minimális és maximális egész szám -2147483648 és 2147483647.

JavaScript bitenként ÉS

Az AND bitértékenként 1-et& ad vissza, ha mindkét operandus megfelelő bitje 1 , akkor 0-t ad vissza .

1. operandus Operand 2 ÉS Működés
0 0 0 & 0értéke 0
0 1 0 & 1értéke 0
1 0 1 & 0értéke 0
1 1 1 & 1az 1

Vessünk egy pillantást a bitenkénti ÉS műveletet két egész szám 12 és 25 .

 Bináris formában 12 = 01100 25 = 11001 // 12-es és 25-es bitenkénti AND működése 00001100 és 00011001 --------- 00001000 = 8 (tizedesjegyben)

Megjegyzés : A 12 és 32 bites bináris konvertálása megadja 00000000000000000000000000001100és 25 ad 00000000000000000000000000011001. Az egyszerűség kedvéért azonban az előző nullákat eltávolítottuk.

1. példa: Bitenkénti ÉS kezelő

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

A fenti programban

  • A 12 bináris értéke :00000000000000000000000000001100
  • A bináris értéke 25 van 00000000000000000000000000011001.
  • A bitenkénti ÉS művelet végrehajtásakor az a bináris eredmény lesz, 00000000000000000000000000001000amely a 8. decimális értékre konvertálódik.

JavaScript bitenként VAGY

A bitenkénti OR 1-et| ad vissza, ha egy operandus megfelelő bitjeinek bármelyike 1 , akkor 0-t ad vissza .

1. operandus Operand 2 VAGY művelet
0 0 0 | 0értéke 0
0 1 0 | 1az 1
1 0 1 | 0az 1
1 1 1 | 1az 1

Vessünk egy pillantást a bitenkénti VAGY művelet két egész szám 12 és 25 .

Bináris formában 12 = 01100 25 = 11001 // Bitenként VAGY a 12 és 25 művelete 00001100 | 00011001 -------- 00011101 = 29 (tizedesjegyben)

2. példa: Bitenként vagy Vezérlő

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

Ha bitenként vagy OR műveletet hajtanak végre, akkor a bináris eredmény az lesz, 00000000000000000000000000011101amely a 29. decimális értékre konvertálódik.

JavaScript Bitenként XOR

Az XOR bitenkénti ^értéke 1, ha a megfelelő bitek különböznek, és 0 értéket ad vissza, ha a megfelelő bitek megegyeznek.

1. operandus Operand 2 XOR művelet
0 0 0 0értéke 0
0 1 0 1az 1
1 0 1 0az 1
1 1 1 1értéke 0
 Bináris formában 12 = 01100 25 = 11001 // 12 és 25 bitenkénti XOR-művelete 00001100 00011001 -------- 00010101 = 21 (tizedesjegyben)

3. példa: Bitenként XOR operátor

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

A bitenkénti XOR művelet végrehajtása esetén a bináris eredmény az lesz, 00000000000000000000000000010101amely a 21. decimális értékre konvertálódik.

A JavaScript bitenként NEM

Bitenként NEM ~invertálja a bitet ( 0- ból 1 lesz , 1-ből 0 lesz ).

 Bináris formában 12 = 000000000000000000000000000000001100 // 12 ~ 000000000000000000000000000000000000 --------------------------------- 1111111111111111111111111111110011 = -13 (tizedesjegyig)

A 11111111111111111111111111110011decimálisra történő konvertálás során az érték 4294967283. A bitenkénti operátor használata esetén azonban az értéket a 2-es előjeles komplementer formátumban kell kiszámítani, kivéve a nulla kitöltésű jobb eltolást.

A 2-es komplementert a bitek (1-es komplementer) megfordításával, majd 1 hozzáadásával számoljuk ki . Például,

 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

A bal váltás operátorban <<a bal operandus adja meg a számot, a jobb operandus pedig a balra tolandó számot. Nulla biteket adunk a jobb oldalon, a bal felesleges biteket pedig eldobjuk.

Egy kicsit balra tolódik a JavaScript

Például,

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

JavaScript jeltovábbító jobb váltás

A jobb váltás operátorban >>az első operandus adja meg a számot, a második operandus pedig a jobbra tolandó számot. A jobb oldalon lévő felesleges biteket eldobják. A bal szélső bit másolatai balról mozognak, ezért terjed a névjel.

Egy bites jobbra tolás előjel terjedésével töltse ki a JavaScript-et

Például,

 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 jobb váltás

A nulla kitöltésű jobb shift >>>eltolja az operandust jobbra azáltal, hogy kitölti a nulla bitet balra. A jobb oldalon lévő felesleges biteket eldobják.

Egy bites jobbra tolás nulla kitöltéssel a JavaScript-ben

Például,

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

érdekes cikkek...