Uvod u bitрозne operatore u JavaScript-u

Operatori bitova u JavaScript djeluju na svoj operand radeći na njima u obrascu reprezentacije njihovog binarnog broja (Baza 2) (posebno u obliku 32-bitnih brojeva), a ne u decimalnom broju (Baza 10), oktalnim brojevima (Baza 8), ili šesterokutni broj (Baza 16). Na primjer, 1010 je binarni prikaz decimalnog broja deset. Operacije u bitisu u JavaScript-u izvode se na operandima operatora u njihovim binarnim prikazima, ali izlaz se uvijek vraća u obliku standardne numeričke vrijednosti.

Bitni operator u JavaScript-u pretvara svoje operande u oblik 2 komplementa 32-bitnog potpisanog cjelobrojnog oblika. Stoga, kad god je operator operiran na cijeli broj, izvedena vrijednost je 2 komplementarni oblik tog cijelog broja. 2 komplementa cijelog broja je 1 dopunjavanje broja (tj. Bitov Ne broja) plus 1.

Na primjer, slijedi 32-bitni prikaz broja 7

00000000000000000000000000000111

Dolje je 1 'komplementa, tj. ~ 7

11111111111111111111111111111000

Ispod je 2 komplementa oblika koji je jednak -7

11111111111111111111111111111001

Bitwise OperatorupotrebaZnačenje
Bitwise Ix & yVratit će se po 1 u svakoj bitnoj poziciji ako su oba odgovarajuća bita 1 inače 0.
Bitno ILIx | yVratit će se 1 u svakoj poziciji bita ako je bilo koji od odgovarajućih bitova 1, a u suprotnom je 0.
Bitno XORx yVratit će 0 u svakoj poziciji bita ako su oba odgovarajuća bita ili 1 ili 0 drugo 1 kad god su bitovi različiti.
Bitally NOT~ xPomaknut će se bitovi operanda x s 1 na 0 i obrnuto.
Smjena ulijevox << yPomaknit će bite s lijeve strane na binarni broj x za y bita dok istodobno gura 0 na svoje mjesto.
Znak koji se širi pravo pomakomx >> yPomakne li bitove udesno na binarni broj x za y bita dok kopira krajnje lijeve bitove ulijevo do 32 bita.
Nula ispravnog pomakax >>> yPomakne li bitove udesno na binarni broj x za y bitove, a pritom gurajući 0 na lijevoj strani.

Bitwise Logical Operators u JavaScript-u

Bitwise Logički operatori sastoje se od svih logičkih operatera koji se koriste u većini jezika, ali oni se razlikuju na način na koji bitnostno logički operatori djeluju bitno. Sljedeći su bitni logički operatori koji se koriste u JavaScriptu:

1. Bitwise I

Ovo je binarni operator označen simbolom ampersand „&“ koji izvodi operaciju AND na uzastopnom paru odgovarajućih bita svojih argumenata. Operator "&" vratio bi 1 samo ako su oba bita 1, vratit će se 0. Stoga možemo i korelirati operaciju AND s množenjem, jer će oba dati isti odgovor.

xYX & Y
000
010
100
111

Primjer

10 (baza 10) = 00000000000000000000000000001010
13 (baza 10) = 00000000000000000000000000001101

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

10 i 13 00000000000000000000000000001000 = 8 (baza 10)

2. Bitno ILI

Ovo je binarni operator označen simbolom okomite trake "|" koja izvodi operaciju ILI na uzastopnom paru odgovarajućih bita svojih argumenata. Operator "|" vraća 1 ako je bilo koji od bitova 1 ili su oba jedan, vratit će se 0. Bitwise ILI "|" se razlikuju od logičkog ILI "||" jer djeluje pomalo.

xYX | Y
000
011
101
111

Primjer

10 (baza 10) = 00000000000000000000000000001010
13 (baza 10) = 00000000000000000000000000001101

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

10 | 13 00000000000000000000000000001111 = 15 (osnovica 10)

3. Bitwise XOR

Ovo je binarni operator označen simbolom caret "^" koji izvodi operaciju XOR na uzastopnom paru odgovarajućih bita svojih argumenata. Operator "^" vraća 0 ako su oba bita ista (tj. Oba su 1 ili su oba 0), vratiće 1.

xYX Y
000
011
101
110

Primjer

10 (baza 10) = 00000000000000000000000000001010
13 (baza 10) = 00000000000000000000000000001101

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

10 13 00000000000000000000000000000111 = 7 (baza 10)

4. Bitwise NOT

Ovo je jedanrski operator označen simbolom tilde „~“ koji izvodi operaciju NOT na odgovarajućim bitovima svog argumenta. Operater "~" bi preokrenuo bitove operanda, tj. Pretvorio 0 u 1 ili 1 u 0.

xX-
01
10

Primjer

10 (baza 10) = 00000000000000000000000000001010

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

~ 10 11111111111111111111111111110101

Operatori pomaka pomaka u JavaScript-u

U operaciji pomaka u pomacima također se uzimaju dva argumenta, gdje je prvi argument binarni broj na kojem će se izvesti operacija promjene, a drugi argument određuje broj bita po kojima se prvi argument mora pomaknuti. Operator koji se koristi određuje smjer rada smjene u binarnom broju.

1. Bitwise Left Shift

Ovo je binarni operator označen simbolom "<<". Ovaj operator će pomaknuti krajnje desne bitove prvog argumenta u lijevu vrijednost vrijednosti drugog argumenta. Bitovi pomaknuti udesno zamjenjuju se sa 0 u gornjem desnom dijelu za svaku izvedenu operaciju promjene.

Primjer: 8 << 3 prinosa 64

8 (baza 10) = 00000000000000000000000000001000

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

8 << 3 00000000000000000000000001000000 = 64 (baza 10)

2. Pomicanje u desno

Ovo je binarni operator označen simbolom ">>>". Ovaj operator će pomaknuti krajnje desne bitove prvog argumenta u njihovo pravo za vrijednost vrijednosti drugog argumenta. Bitovi pomaknuti s lijeve strane zamjenjuju se sa 0 u krajnjem lijevom dijelu za svaku izvedenu operaciju promjene.

Primjer: 8 >>> 3 prinosa 1

8 (baza 10) = 00000000000000000000000000001000

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

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

-8 (baza 10) = 11111111111111111111111111111000

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

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

3. Bitwise Sign Right Propagating Right Shift

Ovo je binarni operator označen simbolom ">>". Ovaj operator će pomaknuti krajnje desne bitove prvog argumenta u njihovo pravo za vrijednost vrijednosti drugog argumenta. Bitovi pomaknuti s lijeve strane zamjenjuju se krajnjim lijevim bitom (tj. Bitnim znakom) u krajnjem lijevom dijelu za svaku izvedenu operaciju promjene.

Primjer: 8 >>> 3 prinosa 1

8 (baza 10) = 00000000000000000000000000001000

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

8 >> 3 00000000000000000000000000000001 = 1 (baza 10)

-8 (baza 10) = 11111111111111111111111111111000

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

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

Zaključak

Argumenti se pretvaraju u 32-bitna binarna broja i izražavaju u obliku bitova (tj. 0 i 1). Brojevi u argumentima koji rezultiraju s više od 32 bita odbacuju svoje msb-ove (najznačajniji bit). Isto se pravilo primjenjuje kada se tijekom rada smjene odbaci lijevi bit, tada se odvoje dodatni bitovi na msb, a tijekom desnog pomaka, dodatni bit koji raste u gornjem desnom dijelu se odbacuje.

Prije: 110011010100011101001000100000001110010010001

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

Nakon: 11101001000100000001110010010001

Svaki odgovarajući bit je uparen jedan s drugim, tj. Prvi bit s prvim bitom ostalih argumenata, drugi bit s drugim bitom i tako dalje.

Operator se primjenjuje na svaki bit (za binarni operator to bi trebao biti par bitova), otuda se nazivaju bitovni operatori u JavaScript-u.

Praktična primjena bitnog operatora su Bit zastavice, komunikacija preko utičnice / portova, kompresija, šifriranje, konačni strojevi, grafika itd.

Preporučeni članci

Ovo je vodič za Bitwise Operatere u JavaScript-u. Ovdje ćemo raspravljati o uvođenju, vrstama bitnih operatora u JavaScript-u, kao što su logički i pomični operatori zajedno s njegovim operacijama. Možete pogledati i sljedeće članke da biste saznali više -

  1. Kompajleri JavaScripta
  2. Preokrenuti u JavaScript
  3. Za petlju u JavaScript-u
  4. Uvod u JavaScript

Kategorija: