Uvod v bitne operaterje v JavaScript

Operaterji bitnega prenosa v JavaScript delujejo na svoj operand, tako da delujejo na njih v obliki predstavitve svojega binarnega števila (Base 2) (zlasti v obliki 32-bitnih števil), ne pa v decimalnem številu (Baza 10), oktalnih številkah (Baza 8) ali šestnajstiško zapis (številka 16). Na primer, 1010 je binarni prikaz decimalnega števila deset. Bitne operacije v JavaScript se izvajajo na operandih operaterjev v njihovih binarnih predstavitvah, vendar se izhod vedno vrne v obliki standardne številčne vrednosti.

Nekoliko bitni operater v JavaScript pretvori njihove operande v 2 dopolnilno obliko njihovega 32-bitnega podpisanega celotnega obrazca. Torej, kadar operater deluje na celo število, je izpeljana vrednost 2 dopolnilna oblika tega celega števila. 2-je dopolnilo celega števila je 1-je dopolnilo števila (tj. Bitno ne od števila) plus 1.

Sledi na primer 32-bitna predstavitev števila 7

00000000000000000000000000000111

Spodaj je 1 'dopolnilo, tj. ~ 7

11111111111111111111111111111000

Spodaj je 2 dopolnilna oblika, ki je enaka -7

11111111111111111111111111111001

Bitwise OperatorUporabaPomen
Bitwise INx & yVrne se 1 v vsakem bitnem položaju, če sta oba ustrezna bita 1, sicer 0.
Bitno ALIx | yVrne se 1 v vsakem bitnem položaju, če je kateri koli od ustreznih bitov 1, sicer 0.
Bitwise XORx yV vsaki poziciji bitov vrne 0, če sta oba ustrezna bita 1 ali 0, kadar je bit enak.
Bitwise NE~ xBitovi operanda x prevrnejo od 1 do 0 in obratno.
Levi shiftx << yBitove premakne v levo na binarno številko x za y bitov, medtem ko pritisne 0 na desno stran.
Znak širjenja desnega premikax >> yBitove premakne v desno na binarno število x za y b, medtem ko bo skrajne leve bite kopiral v levo, da bo dokončalo 32 bitov.
Zamik desnega polnjenja desnox >>> yBitove premakne v desno na binarno število x za y b, medtem ko na levi potisne 0.

Bitwise Logical Operators v JavaScript

Bitwise Logični operaterji so sestavljeni iz vseh logičnih operaterjev, ki se uporabljajo v večini jezikov, vendar so na tak način različni, kot bitnostno logični operaterji delujejo malo po bit. V JavaScript so uporabljeni naslednji bitni logični operaterji:

1. Porazen IN

To je binarni operater, označen s simbolom ampersand „&“, ki izvede operacijo AND na zaporednem paru ustreznih bitov svojih argumentov. Operater "&" bi vrnil 1 samo, če sta oba bita 1, bo vrnil 0. Zato lahko tudi povežemo AND z množenjem, ker bosta oba dala enak odgovor.

XYX & Y
000
010
100
111

Primer

10 (osnova 10) = 0000000000000000000000000000101010
13 (osnova 10) = 00000000000000000000000000001101

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

10 in 13 00000000000000000000000000001000 = 8 (osnova 10)

2. Bitno ALI

To je binarni operater, označen s simbolom navpične vrstice "|", ki izvede operacijo OR na zaporednem paru ustreznih bitov svojih argumentov. Operater "|" bi vrnil 1, če je kateri koli od bitov 1 ali oba sta 1, se bo vrnil 0. Bitwise ALI "|" se razlikuje od logičnega ALI "||", saj deluje bitno.

XYX | Y
000
011
101
111

Primer

10 (osnova 10) = 0000000000000000000000000000101010
13 (osnova 10) = 00000000000000000000000000001101

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

10 | 13 00000000000000000000000000001111 = 15 (osnova 10)

3. Bitwise XOR

To je binarni operater, ki ga označuje simbol caret "^", ki izvede operacijo XOR na zaporednem paru ustreznih bitov svojih argumentov. Operater "^" bi vrnil 0, če sta oba bita enaka (tj. Oba sta 1 ali oba sta 0), sicer bo vrnila 1.

XYX Y
000
011
101
110

Primer

10 (osnova 10) = 0000000000000000000000000000101010
13 (osnova 10) = 00000000000000000000000000001101

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

10 13 00000000000000000000000000000111 = 7 (osnova 10)

4. Bitwise NE

To je urski operater, označen s simbolom tilde "~", ki izvede operacijo NOT na ustreznih bitih svojega argumenta. Operater "~" bi obrnil bite operanda, torej pretvoril 0 v 1 ali 1 v 0.

X~ X
01
10

Primer

10 (osnova 10) = 0000000000000000000000000000101010

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

~ 10 11111111111111111111111111110101

Operatorji bitnega prestavljanja v JavaScript

Pri delu z bitnim premikom sta tudi dva argumenta, pri čemer je prvi argument binarno število, na katerem bo izvedena operacija premika, drugi argument pa določa število bitov, za katere je treba prvi argument prestaviti. Operator, ki se uporablja, v smeri binarne številke določa smer premika.

1. Bitwise Left Shift

To je binarni operater, označen s simbolom "<<". Ta operater pomakne skrajne desne bite prvega argumenta na levo za vrednost drugega argumenta. Bitovi, premaknjeni z desne strani, se pri vsaki izvedeni izmeni zamenjajo z 0 na skrajnem desnem delu.

Primer: 8 << 3 donosi 64

8 (osnova 10) = 00000000000000000000000000001000

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

8 << 3 00000000000000000000000001000000 = 64 (osnova 10)

2. Bitwise Right Shift

To je binarni operater, označen s simbolom “>>>”. Ta operater premakne skrajne desne bite prvega argumenta v njihovo pravico za vrednost drugega argumenta. Bitovi, pomaknjeni z leve strani, se za vsako opravljeno premik zamenjajo z 0 na skrajnem levem delu.

Primer: 8 >>> 3 donosi 1

8 (osnova 10) = 00000000000000000000000000001000

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

8 >>> 3 00000000000000000000000000000001 = 1 (osnova 10)

-8 (osnova 10) = 11111111111111111111111111111000

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

-8 >>> 3 00011111111111111111111111111111 = 536870911 (osnova 10)

3. Bitnostno podpiranje širjenja desnega premika

To je binarni operater, označen s simbolom ">>". Ta operater premakne skrajne desne bite prvega argumenta v njihovo pravico za vrednost drugega argumenta. Bitovi, premaknjeni z leve strani, se za vsako izvedeno operacijo premika nadomestijo z levim bitjem (tj. Znakom) v skrajnem levem delu.

Primer: 8 >>> 3 donosi 1

8 (osnova 10) = 00000000000000000000000000001000

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

8 >> 3 00000000000000000000000000000001 = 1 (osnova 10)

-8 (osnova 10) = 11111111111111111111111111111000

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

-8 >> 3 11111111111111111111111111111111 = -1 (osnova 10)

Zaključek

Argumenti se pretvorijo v 32-bitna binarna števila in se izrazijo v obliki bitov (tj. 0 in 1). Številke v argumentih, ki izhajajo z več kot 32 bitov, zavržejo svoj msb (najpomembnejši bit). Enako pravilo velja, kadar se med delovanjem premika, če se premik bita levo, potem se dodatni biti v msb zavržejo, med desnim premikom pa se dodatni bit, ki raste v skrajnem desnem delu, zavrže.

Pred tem: 110011010100011101001000100000001110010010001

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

Po: 11101001000100000001110010010001

Vsak ustrezni bit je seznanjen med seboj, tj. Prvi bit s prvim bitom drugih argumentov, drugi bit z drugim bitjem in tako naprej.

Operater se uporablja za vsak bit (za binarni operater bi moral biti to par bitov), ​​zato se v JavaScript imenujejo bitni operaterji.

Praktična uporaba bitovskega operaterja so bitne zastavice, komunikacija preko vtičnice / vrat, stiskanje, šifriranje, stroji s končnim stanjem, grafika itd.

Priporočeni članki

To je vodnik za Bitwise Operatorje v JavaScript. Tukaj razpravljamo o uvedbi, vrstah bitnih operaterjev v JavaScript, kot so logični operaterji in operatorji premikov ter njegove operacije. Če želite izvedeti več, si oglejte tudi naslednje članke -

  1. Kompilatorji JavaScript
  2. Obrni v JavaScript
  3. Za zanko v JavaScript
  4. Uvod v JavaScript