Introduksjon til Bitvis-operatører i JavaScript

Bitvis-operatørene i JavaScript handler på deres operand ved å operere på dem i deres binære nummer (Base 2) -representasjonsform (spesielt 32-bits tallform), i stedet for i desimaltall (Base 10), oktale tall (Base 8), eller heksadesimal nummer (Base 16) notasjon. For eksempel er 1010 den binære representasjonen av desimaltallet ti. Bitvise operasjoner i JavaScript utføres på operandene til operatørene i deres binære representasjoner, men utdataene returneres alltid i standard numerisk verdiform.

En bitvis operatør i JavaScript konverterer operandene sine til 2s komplementform av deres 32-bits signerte heltallform. Når en operatør arbeider på et helt tall, er avledningsverdien følgelig 2-erens komplementform av det heltallet. 2-komplementet til et heltall er 1-komplementet til tallet (dvs. bitvis Ikke av tallet) pluss 1.

For eksempel er følgende 32-biters representasjon av tallet 7

00000000000000000000000000000111

Nedenfor er 1 'komplement dvs. ~ 7

11111111111111111111111111111000

Nedenfor er 2s komplementform som er lik -7

11111111111111111111111111111001

Bitvis operatørbrukBetydning
Bitvis OGx & yReturnerer 1 i hver bitposisjon hvis begge de tilsvarende bitene er 1 ellers 0.
Bitvis ELLERx | yReturnerer 1 i hver bitposisjon hvis noen av de tilsvarende bitene er 1 ellers 0.
Bitvis XORx yReturnerer 0 i hver bitposisjon hvis begge de tilsvarende bitene er enten 1 eller 0 elsewise 1 når bitene er forskjellige.
Bitvis IKKE~ xVil snu bitene til operand x fra 1 til 0 og omvendt.
Venstre shiftx << ySkifter bitene til venstre på det binære tallet x med y biter mens du skyver 0 på plass fra høyre.
Skilt forplantende høyre skiftex >> ySkifter bitene til høyre på det binære tallet x med y biter mens du kopierer de venstre bitene til venstre for å fullføre 32 biter.
Null fylle høyre skiftx >>> ySkifter bitene til høyre på det binære tallet x med y biter mens du skyver 0 på plass fra venstre.

Bitvis logiske operatører i JavaScript

Bitvis logiske operatører består av alle logiske operatører som brukes på de fleste språk, men de er forskjellige på en måte som bitvis logiske operatører opererer bit for bit. Følgende er logiske operatører som brukes i JavaScript:

1. Bitvis OG

Dette er en binær operatør betegnet med symbolet på ampersand “&” som utfører en AND-operasjon på det påfølgende par av tilsvarende biter av sine argumenter. "&" -Operatoren vil returnere 1 bare hvis begge bitene 1 er ellers vil den returnere 0. Derfor kan vi også korrelere OG-drift med multiplikasjon fordi begge vil gi det samme svaret.

XYX & Y
000
010
100
111

Eksempel

10 (base 10) = 000000000000000000000000000000001010
13 (base 10) = 000000000000000000000000000000001101

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

10 & 13 00000000000000000000000000001000 = 8 (base 10)

2. Bitvis ELLER

Dette er en binær operatør betegnet med symbolet på en vertikal bjelke "|" som utfører en OR-operasjon på det påfølgende par av tilsvarende biter av sine argumenter. Operatøren “|” vil returnere 1 hvis en av bitene er 1 eller begge deler er 1 ellers vil den returnere 0. Bitvis ELLER “|” er forskjellig fra logisk ELLER “||” da den fungerer bit for bit.

XYX | Y
000
011
101
111

Eksempel

10 (base 10) = 000000000000000000000000000000001010
13 (base 10) = 000000000000000000000000000000001101

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

10 | 13 00000000000000000000000000001111 = 15 (base 10)

3. Bitvis XOR

Dette er en binær operatør betegnet med symbolet på caret “^” som utfører en XOR-operasjon på det påfølgende par av tilsvarende biter av sine argumenter. "^" Operatøren vil returnere 0 hvis begge bitene er de samme (dvs. begge er 1 eller begge er 0) ellers returnerer den 1.

XYX Y
000
011
101
110

Eksempel

10 (base 10) = 000000000000000000000000000000001010
13 (base 10) = 000000000000000000000000000000001101

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

10 13 00000000000000000000000000000111 = 7 (base 10)

4. Bitvis IKKE

Dette er en unær operatør betegnet med symbolet til tilde “~” som utfører en IKKE-operasjon på de tilsvarende bitene i argumentet. Operatøren “~” ville invertere bitene til operanden, dvs. konvertere 0 til 1 eller 1 til 0.

X~ X
01
10

Eksempel

10 (base 10) = 000000000000000000000000000000001010

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

~ 10 11111111111111111111111111110101

Bitvis skiftoperatører i JavaScript

Ved bitvis skiftdrift tar også to argumenter der det første argumentet er det binære nummeret som skiftoperasjonen skal utføres på, og det andre argumentet spesifiserer antall biter som det første argumentet må forskyves med. Operatøren som brukes spesifiserer retningen på skiftoperasjonen i det binære nummeret.

1. Bitvis venstre skift

Dette er en binær operatør betegnet med symbolet "<<". Denne operatøren vil skifte de høyre bitene til det første argumentet til venstre etter verdien av de andre argumentetidene. Bitene forskjøvet fra høyre erstattes av 0 i den høyre delen for hver skiftoperasjon som utføres.

Eksempel: 8 << 3 gir 64

8 (base 10) = 000000000000000000000000000000001000

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

8 << 3 00000000000000000000000001000000 = 64 (base 10)

2. Bitvis høyre skift

Dette er binæroperatør betegnet med symbolet ">>>". Denne operatøren vil forskyve de høyre bitene til det første argumentet til høyre ved verdien av de andre argumenttider. Bitene forskjøvet fra venstre erstattes av 0 i den venstre delen for hver skiftoperasjon som utføres.

Eksempel: 8 >>> 3 gir 1

8 (base 10) = 000000000000000000000000000000001000

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

8 >>> 3 0000000000000000000000000000000101 = 1 (base 10)

-8 (base 10) = 11111111111111111111111111111000

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

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

3. Bitvis skilt som formerer høyre skift

Dette er en binær operatør betegnet med symbolet ">>". Denne operatøren vil forskyve de høyre bitene til det første argumentet til høyre ved verdien av de andre argumenttider. Bitene forskjøvet fra venstre erstattes av bit til venstre (dvs. tegnbit) i den venstre delen for hver skiftoperasjon som utføres.

Eksempel: 8 >>> 3 gir 1

8 (base 10) = 000000000000000000000000000000001000

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

8 >> 3 0000000000000000000000000000000101 = 1 (base 10)

-8 (base 10) = 11111111111111111111111111111000

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

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

Konklusjon

Argumentene konverteres til 32-bit binære tall og uttrykkes i form av biter (dvs. 0 og 1). Tall i argumentene som resulterer med mer enn 32 biter, får MSB-ene (den mest betydningsfulle biten) forkastet. Den samme regelen gjelder når under skiftdrift, hvis bitskiftet til venstre, så blir de ekstra bitene på msb kastet, og under høyre skifting kasseres den ekstra biten som vokser i høyre del.

Før: 110011010100011101001000100000001110010010001

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

Etter: 11101001000100000001110010010001

Hver korresponderende bit er sammenkoblet med hverandre, dvs. den første biten med den første biten av andre argumenter, den andre biten med den andre biten og så videre.

Operatøren blir brukt på hver bit (for den binære operatøren skal det være et par bit), derav kalt bitvise operatører i JavaScript.

Praktisk anvendelse av bitvis operatør er Bitflagg, kommunikasjon over socket / porter, komprimering, kryptering, endelige tilstandsmaskiner, grafikk, etc.

Anbefalte artikler

Dette er en guide til Bitvis-operatører i JavaScript. Her diskuterer vi introduksjonen, typer bitvise operatører i JavaScript som logiske og skiftoperatører sammen med dens operasjoner. Du kan også se på følgende artikler for å lære mer-

  1. JavaScript-kompilatorer
  2. Omvendt i JavaScript
  3. For Loop i JavaScript
  4. Introduksjon til JavaScript