Úvod do bitových operátorov v JavaScripte

Operátory Bitwise v JavaScripte pôsobia na svoj operand tak, že na ne pracujú vo forme reprezentácie binárnych čísiel (základ 2) (najmä 32-bitových čísel), a nie na desatinné číslo (základ 10), osmičkové čísla (základ 8). alebo hexadecimálne číslo (základ 16). Napríklad 1010 je binárna reprezentácia desatinného čísla desať. Bitové operácie v JavaScripte sa vykonávajú na operandoch operátorov v ich binárnych reprezentáciách, ale výstup sa vždy vracia v štandardnej číselnej hodnote.

Bitový operátor v JavaScripte prevádza svoje operandy na formu 2 doplnku svojej 32-bitovej celočíselnej formy podpísanej. Preto vždy, keď operátor pracuje na celom čísle, odvodená hodnota je doplnkovou formou 2 tohto čísla. Doplnok 2 celého čísla je doplnok čísla 1 (tj bitovo nie čísla) plus 1.

Nasleduje napríklad 32-bitové zobrazenie čísla 7

00000000000000000000000000000111

Nižšie je 1 'doplnok, tj ~ 7

11111111111111111111111111111000

Nižšie je 2 doplnková forma, ktorá sa rovná -7

11111111111111111111111111111001

Bitový operátorpoužívaniezmysel
Bitovo Ax & yVráti 1 v každej bitovej pozícii, ak obidve zodpovedajúce bity sú 1 inak 0.
Bitový ALEBOx | yVráti 1 v každej bitovej pozícii, ak ktorýkoľvek zo zodpovedajúcich bitov je 1 inak 0.
Bitový XORx yVráti 0 v každej bitovej pozícii, ak sú oba zodpovedajúce bity 1 alebo 0 inak 1, kedykoľvek sú bity odlišné.
Bitové NIE~ xPrevráti bity operandu x od 1 do 0 a naopak.
Lavy shiftx << yPosunie bity doľava na binárne číslo x za y bity, zatiaľ čo posunie 0 na svoje miesto sprava.
Posúvanie šípok dopravax >> yPosunie bity doprava na binárne číslo x za y bity, zatiaľ čo skopíruje bity úplne vľavo doľava na dokončenie 32 bitov.
Nulová výplň dopravax >>> yPosunie bity doprava na binárne číslo x za y bity, zatiaľ čo posunie 0 na miesto zľava.

Bitové logické operátory v JavaScripte

Bitové logické operátory pozostávajú zo všetkých logických operátorov používaných vo väčšine jazykov, ale líšia sa takým spôsobom, že bitové logické operátory fungujú po bitoch. V JavaScripte sa používajú bitové logické operátory:

1. Bitovo A

Toto je binárny operátor označený symbolom ampersand „&“, ktorý vykonáva operáciu AND na nasledujúcom páre zodpovedajúcich bitov svojich argumentov. Operátor „&“ by vrátil 1, iba ak by oba bity 1 boli, inak sa vráti 0. Preto môžeme tiež korelovať AND operáciu s násobením, pretože obidve dajú rovnakú odpoveď.

XYX a Y
000
010
100
111

príklad

10 (základ 10) = 000000000000000000000000000000001010
13 (základ 10) = 000000000000000000000000000000001101

----------------------------

10 a 13 0000000000000000000000000000001000 = 8 (základňa 10)

2. Bitový ALEBO

Je to binárny operátor označený symbolom vertikálnej lišty „|“, ktorá vykonáva operáciu OR na po sebe idúcich pároch zodpovedajúcich bitov svojich argumentov. Operátor “|” by vrátil 1, ak jeden z bitov je 1 alebo obidva sú 1, vráti 0. Bitový tok ALEBO “|” sa líši od logického OR “||”, pretože pracuje bit po bitoch.

XYX | Y
000
011
101
111

príklad

10 (základ 10) = 000000000000000000000000000000001010
13 (základ 10) = 000000000000000000000000000000001101

----------------------------

10 13 0000000000000000000000000000001111 = 15 (základňa 10)

3. Bitový XOR

Jedná sa o binárny operátor označený symbolom zástupcu „^“, ktorý vykonáva operáciu XOR na nasledujúcom páre zodpovedajúcich bitov svojich argumentov. Operátor „^“ vráti 0, ak sú oba bity rovnaké (tj obidve sú 1 alebo obidve sú 0), inak vráti 1.

XYX Y
000
011
101
110

príklad

10 (základ 10) = 000000000000000000000000000000001010
13 (základ 10) = 000000000000000000000000000000001101

----------------------------

10 13 0000000000000000000000000000000111 = 7 (základ 10)

4. Bitovo NIE

Toto je unárny operátor označený symbolom vlnovky „~“, ktorý vykonáva operáciu NOT na zodpovedajúcich bitoch jeho argumentu. Operátor „~“ by invertoval bity operandu, tj konvertoval 0 na 1 alebo 1 na 0.

X~ X
01
10

príklad

10 (základ 10) = 000000000000000000000000000000001010

----------------------------

~ 10 111111111111111111111111110101

Operátory bitového posunu v JavaScripte

Pri operácii bitového posunu berie tiež dva argumenty, kde prvým argumentom je binárne číslo, na ktorom sa vykoná operácia posunu, a druhým argumentom sa určuje počet bitov, o ktoré sa musí prvý argument posunúť. Použitý operátor určuje v binárnom čísle smer operácie zmeny.

1. Bitový posun vľavo

Jedná sa o binárny operátor označený symbolom „<<“. Tento operátor presunie najviac bity prvého argumentu doľava o hodnotu časov druhého argumentu. Bity posunuté sprava sú nahradené 0 v najzadnejšej časti pre každú vykonanú operáciu posunu.

Príklad: 8 << 3 výťažky 64

8 (základ 10) = 000000000000000000000000000000001000

----------------------------

8 << 3 0000000000000000000000000001000000 = 64 (základ 10)

2. Bitový pravý posun

Toto je binárny operátor označený symbolom „>>>“. Tento operátor presunie najviac bity prvého argumentu na svoje právo podľa hodnoty časov druhého argumentu. Bity posunuté zľava sú nahradené 0 v najľavejšej časti pre každú vykonanú operáciu posunu.

Príklad: 8 >>> 3 vedie k 1

8 (základ 10) = 000000000000000000000000000000001000

----------------------------

8 >>> 3 0000000000000000000000000000000001 = 1 (základňa 10)

-8 (základ 10) = 11111111111111111111111111111000

----------------------------

-8 >>> 3 00011111111111111111111111111111 = 536870911 (základ 10)

3. Bitový znak šíriaci pravý posun

Jedná sa o binárny operátor označený symbolom „>>“. Tento operátor presunie najviac bity prvého argumentu na svoje právo podľa hodnoty časov druhého argumentu. Bity posunuté zľava sú nahradené bitom úplne vľavo (tj znamienkovým bitom) v ľavej krajnej časti pre každú vykonanú operáciu posunu.

Príklad: 8 >>> 3 vedie k 1

8 (základ 10) = 000000000000000000000000000000001000

----------------------------

8 >> 3 0000000000000000000000000000000001 = 1 (základňa 10)

-8 (základ 10) = 11111111111111111111111111111000

----------------------------

-8 >> 3 11111111111111111111111111111111 = -1 (základňa 10)

záver

Argumenty sa prevádzajú na 32-bitové binárne čísla a vyjadrujú sa vo forme bitov (tj 0 a 1). Čísla v argumentoch, ktoré majú za následok viac ako 32 bitov, dostanú svoje msb (najvýznamnejší bit) zahodené. Rovnaké pravidlo platí, keď počas operácie posunu, ak je bitový posun vľavo, potom sa vyradia ďalšie bity v msb a počas pravého posunu sa vyradí ďalší bit, ktorý rastie v najzadnejšej časti.

Pred: 110011010100011101001000100000001110010010001

----------------------------

Po: 11101001000100000001110010010001

Každý zodpovedajúci bit je spárovaný jeden s druhým, tj prvý bit s prvým bitom iných argumentov, druhý bit s druhým bitom atď.

Operátor sa aplikuje na každý bit (pre binárneho operátora by to mal byť pár bitov), ​​preto sa v JavaScripte nazýva bitové operátory.

Praktickou aplikáciou bitového operátora sú bitové príznaky, komunikácia cez soket / porty, kompresia, šifrovanie, stroje konečných stavov, grafika atď.

Odporúčané články

Toto je príručka pre operátorov Bitwise v jazyku JavaScript. Tu diskutujeme predstavenie, typy bitových operátorov v JavaScripte, ako sú logické operátory a operátory zmeny spolu s ich operáciami. Viac informácií nájdete aj v nasledujúcich článkoch

  1. Kompilátory JavaScriptu
  2. Obrátiť sa na JavaScript
  3. Pre slučku v jazyku JavaScript
  4. Úvod do JavaScriptu

Kategórie: