„JavaScript“ bitų operatoriai (su pavyzdžiais)

Šioje pamokoje, naudodamiesi pavyzdžiais, sužinosite apie „JavaScript“ bitų operatorius ir jo tipus.

„JavaScript“ bitų operatoriai

Operatoriai bitais laiko jos operandus kaip 32 bitų dvejetainių skaitmenų (nulių ir vienetų) rinkinį ir atlieka veiksmus. Tačiau rezultatas rodomas kaip dešimtainė reikšmė.

Operatoriai vardas Pavyzdys
& Bitais IR x & y
| ARBA bitais x | y
^ Bitais XOR x y
~ Bitiškai NE ~x
<< Kairysis poslinkis x << y
>> Ženklų platinimas dešine poslinkiu x>> y
>>> Nulis užpildo dešiniąją pamainą x>>> y

Pastaba : mažiausi ir didžiausi sveiki skaičiai, kuriuos galima pateikti per 32 bitų pasirašytą skaičių, yra nuo -2147483648 iki 2147483647.

„JavaScript“ bitais IR

Bitais IR &grąžina 1, jei atitinkami abiejų operandų bitai yra 1, o kitas grąžina 0 .

Operandas 1 Operandas 2 IR operacija
0 0 0 & 0yra 0
0 1 0 & 1yra 0
1 0 1 & 0yra 0
1 1 1 & 1yra 1

Pažvelkime į dviejų sveikųjų skaičių 12 ir 25 bitų IR operaciją .

 Dvejetainiu skaičiumi 12 = 01100 25 = 11001 // Dalis ir 12 ir 25 veikimas 00001100 ir 00011001 --------- 00001000 = 8 (dešimtainiu skaičiumi)

Pastaba : Konvertavimas 12 iki 32-bitų dvejetainis suteikia mums 00000000000000000000000000001100ir 25 duoda 00000000000000000000000000011001. Tačiau paprastumo sumetimais pašalinome ankstesnius nulius.

1 pavyzdys: Bitų IR operatorius

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

Pirmiau pateiktoje programoje

  • Dvejetainė reikšmė 12 yra00000000000000000000000000001100
  • Dvejetainė 25 reikšmė yra 00000000000000000000000000011001.
  • Kai bus atliekama operacija IR bitais, bus dvejetainis rezultatas, 00000000000000000000000000001000kuris konvertuosis į dešimtainę reikšmę 8.

„JavaScript“ bitais ARBA

Bitais OR |grąžina 1, jei vienas iš operandų atitinkamų bitų yra 1, kitas grąžina 0 .

Operandas 1 Operandas 2 ARBA operacija
0 0 0 | 0yra 0
0 1 0 | 1yra 1
1 0 1 | 0yra 1
1 1 1 | 1yra 1

Pažvelkime į dviejų skaičių 12 ir 25 bitų ARBA operaciją .

Dvejetainiu skaičiumi 12 = 01100 25 = 11001 // 12 ir 25 operacijos bitais arba OR 00001100 | 00011001 -------- 00011101 = 29 (dešimtųjų tikslumu)

2 pavyzdys: Operatorius bitais arba OR

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

Kai atliekama operacija bitais ARBA , bus dvejetainis rezultatas, 00000000000000000000000000011101kuris konvertuosis į dešimtainę reikšmę 29.

„JavaScript Bitwise XOR“

Bitais XOR ^grąžina 1, jei atitinkami bitai yra skirtingi, ir grąžina 0, jei atitinkami bitai yra vienodi.

Operandas 1 Operandas 2 XOR operacija
0 0 0 0yra 0
0 1 0 1yra 1
1 0 1 0yra 1
1 1 1 1yra 0
 Dvejetainiu skaičiumi 12 = 01100 25 = 11001 // 12 ir 25 operacijos bitais XOR 00001100 00011001 -------- 00010101 = 21 (dešimtųjų tikslumu)

3 pavyzdys: Operatorius „Bitwise XOR“

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

Kai bus atlikta XOR operacija bitų pavidalu , bus dvejetainis rezultatas, 00000000000000000000000000010101kuris konvertuosis į dešimtainę reikšmę 21.

„JavaScript“ Bitwise NE

Bitais NE ~apverčia bitą ( 0 tampa 1 , 1 tampa 0 ).

 Dvejetainiu skaičiumi 12 = 000000000000000000000000000000001100 // 12–00000000000000000000000000000000000000 --------------------------------- 1111111111111111111111111111110011 = -13 (dešimtųjų tikslumu)

Konvertuojant 11111111111111111111111111110011į dešimtainę, vertė būtų 4294967283. Tačiau naudojant bitų operatorių, vertė apskaičiuojama pasirašyto 2 papildymo formatu, išskyrus nulinio užpildymo dešinįjį poslinkį.

2 komplementas apskaičiuojamas apverčiant bitus (1 komplementas) ir pridėjus 1 . Pavyzdžiui,

 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

Kairiojo poslinkio operatoriuje <<kairysis operandas nurodo skaičių, o dešinysis - skaičių, kurį reikia perkelti į kairę. Dešinėje pridedami nulio bitai, o iš kairės - pertekliniai.

„JavaScript“ kairysis poslinkis kairėje

Pavyzdžiui,

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

„JavaScript“ ženklų skleidimas dešinėje

Dešiniojo poslinkio operatoriuje >>pirmasis operandas nurodo skaičių, o antrasis - skaičių, kurį reikia perkelti į dešinę. Pertekliniai bitai iš dešinės išmesti. Kairiausio bito kopijos perkeliamos iš kairės, taigi pavadinimas sklinda.

Vienas bitų poslinkis į dešinę su ženklų sklidimu užpildykite „JavaScript“

Pavyzdžiui,

 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“ nulio užpildymas dešinėje

Nulinio pildymo dešiniuoju poslinkiu >>>operandas perkeliamas į dešinę, užpildant nulinius bitus kairėje. Pertekliniai bitai iš dešinės išmesti.

Vienas bitų perkėlimas į dešinę ir nulis užpildykite „JavaScript“

Pavyzdžiui,

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

Įdomios straipsniai...