Introduktion til Bitvis-operatører i JavaScript

Bitvis-operatørerne i JavaScript handler på deres operand ved at operere på dem i deres binære nummer (Base 2) repræsentationsform (især 32-bit-form), snarere end i deres decimalnummer (Base 10), oktale tal (Base 8), eller hexadecimal nummer (Base 16) notation. For eksempel er 1010 den binære repræsentation af decimaltallet ti. Bitvise operationer i JavaScript udføres på operanternes operander i deres binære repræsentationer, men output returneres altid i standard numerisk værdiform.

En bitvis operator i JavaScript konverterer deres operander til 2's komplementform af deres 32-bit signeret heltalform. Når en operatør arbejder på et heltal, er den deriverende værdi derfor 2's komplementform af det heltal. 2's komplement af et heltal er 1's komplement til tallet (dvs. bitvis ikke af tallet) plus 1.

For eksempel er det følgende 32-bit repræsentation af tallet 7

00000000000000000000000000000111

Nedenunder er 1 'komplement dvs. ~ 7

11111111111111111111111111111000

Nedenunder er 2's komplementform, der er lig med -7

11111111111111111111111111111001

Bitvis operatørAnvendelseBetyder
Bitvis OGx & yReturnerer 1 i hver bitposition, hvis begge de tilsvarende bit er 1 ellers 0.
Bitvis ELLERx | yReturnerer 1 i hver bitposition, hvis nogen af ​​de tilsvarende bit er 1 ellers 0.
Bitvis XORx yReturnerer 0 i hver bitposition, hvis begge de tilsvarende bit er enten 1 eller 0 elsewise 1, hver gang bitene er forskellige.
Bitvis IKKE~ xVil vende bitene i operand x fra 1 til 0 og vice versa.
Venstre skiftx << ySkifter bitene til venstre på det binære tal x med y bit mens du skubber 0 på plads fra højre.
Skilt forplantning højre skiftx >> ySkifter bitene til højre på det binære tal x med y-bits, mens de mest venstre bit kopieres til venstre for at afslutte 32 bit.
Nul udfyld højre skiftx >>> ySkifter bitene til højre på det binære tal x med y bit mens du skubber 0 på plads fra venstre.

Bitvis logiske operatører i JavaScript

Bitvis logiske operatører består af alle de logiske operatører, der bruges på de fleste af sprogene, men de er forskellige på en måde, da bitvise logiske operatører fungerer bit for bit. Følgende er logiske operatører, der bruges i JavaScript:

1. Bitvis OG

Dette er en binær operatør betegnet med symbolet på ampersand "&", der udfører en AND-operation på det efterfølgende par af tilsvarende bit af dens argumenter. "&" -Operatøren vil kun returnere 1, hvis begge bit 1 er ellers, vil den vende tilbage 0. Derfor kan vi også korrelere OG-operation med multiplikation, fordi begge giver det samme svar.

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 lodret bjælke "|", der udfører en OR-operation på det efterfølgende par af tilsvarende bit af dens argumenter. "|" -Operatøren vil returnere 1, hvis en af ​​bitene er 1, eller begge dele er 1, vil den returnere 0. Bitvisen ELLER "|" er forskellig 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 “^”, der udfører en XOR-operation på det efterfølgende par af tilsvarende bit af dens 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 uærlig operatør betegnet med symbolet på tilde “~”, der udfører en IKKE-operation på de tilsvarende bit af dets argument. Operatøren “~” ville invertere operandens bits, 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 tager det også to argumenter, hvor det første argument er det binære nummer, som skiftoperationen skal udføres på, og det andet argument specificerer antallet af bit, hvormed det første argument skal flyttes. Den operatør, der bruges, specificerer retningen for skiftoperationen i det binære nummer.

1. Bitvis venstre skift

Dette er en binær operatør betegnet med symbolet "<<". Denne operatør skifter de højeste bit af det første argument til venstre efter værdien af ​​de andre argumenttider. Bitene, der forskydes fra højre, erstattes af 0 i den højre del for hver udførte skiftoperation.

Eksempel: 8 << 3 giver 64

8 (base 10) = 000000000000000000000000000000001000

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

8 << 3 00000000000000000000000001000000 = 64 (base 10)

2. Bitvis højre skift

Dette er binær operatør betegnet med symbolet ">>>". Denne operatør skifter de højeste bit af det første argument til deres højre med værdien af ​​de andre argumenttider. Bitene, der forskydes fra venstre, erstattes af 0 i den venstre del for hver udført skiftoperation.

Eksempel: 8 >>> 3 giver 1

8 (base 10) = 000000000000000000000000000000001000

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

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

-8 (base 10) = 11111111111111111111111111111000

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

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

3. Bitvis tegn, der formerer højre skift

Dette er en binær operatør betegnet med symbolet ">>". Denne operatør flytter de højeste bit af det første argument til deres højre med værdien af ​​de andre argumenttider. Bits, der er forskudt fra venstre, erstattes af bit til venstre (dvs. tegnbit) i den venstre del for hver skiftoperation, der udføres.

Eksempel: 8 >>> 3 giver 1

8 (base 10) = 000000000000000000000000000000001000

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

8 >> 3 0000000000000000000000000000000101 = 1 (base 10)

-8 (base 10) = 11111111111111111111111111111000

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

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

Konklusion

Argumenterne konverteres til 32-bit binære tal og udtrykkes i form af bits (dvs. 0'er og 1'er). Tall i argumenterne, der resulterer med mere end 32 bit, får deres msb'er (den mest betydningsfulde bit) kasseret. Den samme regel gælder, når under skiftdrift, hvis bitskiftet til venstre, kasseres de ekstra bit på msb, og under højre skift kasseres den ekstra bit, der vokser i den højre del, til højre.

Før: 110011010100011101001000100000001110010010001

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

Efter: 11101001000100000001110010010001

Hver tilsvarende bit er parret med hinanden, dvs. den første bit med den første bit af andre argumenter, den anden bit med den anden bit og så videre.

Operatøren anvendes på hver bit (for den binære operatør skal det være et par bit), kaldes derfor bitvise operatorer i JavaScript.

Praktisk anvendelse af bitvis operatør er Bitflagg, kommunikation via socket / porte, komprimering, kryptering, finite state-maskiner, grafik osv.

Anbefalede artikler

Dette er en guide til Bitvis-operatører i JavaScript. Her diskuterer vi introduktionen, typer af bitvise operatører i JavaScript såsom logiske og skiftoperatører sammen med dets operationer. Du kan også se på de følgende artikler for at lære mere-

  1. JavaScript-kompilatorer
  2. Omvendt i JavaScript
  3. Til loop i JavaScript
  4. Introduktion til JavaScript

Kategori: