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 & 1 az 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,
00000000000000000000000000001000
amely 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 | 1 az 1 |
1 | 0 | 1 | 0 az 1 |
1 | 1 | 1 | 1 az 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, 00000000000000000000000000011101
amely 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 1 az 1 |
1 | 0 | 1 0 az 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, 00000000000000000000000000010101
amely 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 11111111111111111111111111110011
decimá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.

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.

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.

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