Bitwise operaatorite tutvustus JavaScriptis

Bitwise'i operaatorid JavaScriptis tegutsevad vastavalt oma operandile, opereerides neid kahendarvude (Base 2) esitusvormis (eriti 32-bitiste arvude kujul), mitte kümnendarvu (Base 10), kaheksanumbrite (Base 8) asemel või kuueteistkümnendarvu (alus 16) märke. Näiteks 1010 on kümnendarvu kümme binaarne esitus. Bitsiväliseid toiminguid JavaScriptis teostatakse operaatorite operandidele nende binaarses esinduses, kuid väljund tagastatakse alati standardse arvulise väärtuse kujul.

Bituaarne operaator JavaScriptis teisendab nende operandid 32-bitise allkirjastatud täisarvvormi 2 komplemendi vormiks. Seega, kui operaatoril arvutatakse täisarv, on tuletatud väärtus selle täisarvu täiendusvorm 2. Täisarv 2 komplemendi moodustab numbri 1 komplemendi (st bitina mitte numbri) pluss 1.

Näiteks järgmine on numbri 7 32-bitine esitus

00000000000000000000000000000111

Allpool on 1 'komplement, st ~ 7

11111111111111111111111111111000

Allpool on toodud 2 komplemendi vorm, mis on võrdne -7

1111111111111111111111111111111001

Bitwise operaatorKasutamineTähendus
Bitwise JAx ja yTagastab 1 igas bitiasendis, kui mõlemad vastavad bitid on 1, vastasel juhul 0.
Bitwise VÕIx | yTagastab 1 igas bitiasendis, kui mõni vastavatest bittidest on 1, vastasel juhul 0.
Bitwise XORx yTagastab 0 igas bitipositsioonis, kui mõlemad vastavad bitid on kas 1 või 0 muidu 1, kui bitid on erinevad.
Bitwise EI~ xPööratakse operandi x bitid vahemikku 1 kuni 0 ja vastupidi.
Vasak Shiftx << aNihutab bitid binaarsel arvul x vasakule vasakule y bitti, surudes samal ajal 0 paremale.
Parem nihutamist edendav märkx >> yNihutab binaarsel arvul x b-d bitti paremale, kopeerides vasakpoolsemaid bitti vasakule, et 32 ​​bitti täita.
Null täitke paremale nihutaminex >>> yNihutab bitaarsel arvul x b-d bittidest paremale, lükates 0 vasakult oma kohale.

Bitwise loogilised operaatorid JavaScriptis

Bitwise-loogilised operaatorid koosnevad kõigist loogilistest operaatoritest, mida kasutatakse enamikus keeltes, kuid need on erinevad viisil, nagu bituuti-loogilised operaatorid töötavad bittides. Järgnevad on JavaScriptis kasutatavad bitiloogilised operaatorid:

1. Bitwise JA

See on binaarne operaator, mida tähistatakse sümboliga & ja, mis teostab AND-i oma argumentide vastavate bittide järjestikusel paaril. Operaator “&” naaseb 1-ga ainult siis, kui mõlemad bitid 1 on teisiti, tagastab ta 0. Seetõttu võime ka AND-i korrelatsiooni korrutada, kuna mõlemad annavad sama vastuse.

XYX ja Y
000
010
100
111

Näide

10 (alus 10) = 00000000000000000000000000001010
13 (alus 10) = 00000000000000000000000000001101

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

10 ja 13 00000000000000000000000000001000 = 8 (alus 10)

2. bittiliselt VÕI

See on binaarne operaator, mida tähistatakse vertikaalse riba sümboliga | |, mis teostab VÕI operatsiooni oma argumentide vastavate bittide järjestikusel paaril. Operaator “|” tagastab 1, kui kumbki bittidest on 1 või mõlemad on üks teine, tagastab ta 0. Bitikiirus VÕI “|” erineb loogilisest VÕI “||”, kuna see töötab vähehaaval.

XYX | Y
000
011
101
111

Näide

10 (alus 10) = 00000000000000000000000000001010
13 (alus 10) = 00000000000000000000000000001101

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

10 | 13 00000000000000000000000000001111 = 15 (alus 10)

3. Bitwise XOR

See on binaarne operaator, mida tähistatakse sümboliga caret “^”, mis teostab XOR-i operatsiooni oma argumentide vastavate bittide järjestikusel paaril. Operaator „^” tagastab 0, kui mõlemad bitid on samad (st mõlemad on 1 või mõlemad on 0), vastasel juhul naaseb 1.

XYX Y
000
011
101
110

Näide

10 (alus 10) = 00000000000000000000000000001010
13 (alus 10) = 00000000000000000000000000001101

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

10 13 00000000000000000000000000000111 = 7 (alus 10)

4. Bitwise EI

See on ühtne operaator, mida tähistatakse sümboliga tilde “~” ja mis sooritab NOT argumendi vastavatel bittidel. “~” Operaator pöörab operandi bitid ümber, st teisendab väärtused 0 väärtuseks 1 või 1 väärtuseks 0.

X~ X
01
10

Näide

10 (alus 10) = 00000000000000000000000000001010

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

~ 10 11111111111111111111111111110101

Bitwise Shift operaatorid JavaScript

Bituaarses nihutamises toimub ka kaks argumenti, kus esimene argument on binaarne arv, millel nihutamisoperatsioon teostatakse, ja teine ​​argument täpsustab bittide arvu, mille võrra esimest argumenti tuleb nihutada. Kasutatav operaator täpsustab kahendnumbris nihutamise toimingu suuna.

1. Bitisuunas vasakule nihutamine

See on binaarne operaator, mida tähistatakse sümboliga <<<. See operaator nihutab esimese argumendi parempoolsemad bitid vasakule teise argumendi aja väärtuse võrra. Parempoolselt nihutatud bitid asendatakse iga teostatud nihutamisoperatsiooni korral parempoolses osas 0-ga.

Näide: 8 << 3 annab 64

8 (alus 10) = 00000000000000000000000000001000

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

8 << 3 00000000000000000000000001000000 = 64 (alus 10)

2. Parempoolne nihutamine

See on binaarne operaator, mida tähistatakse sümboliga “>>>”. See operaator nihutab esimese argumendi parempoolsemad bitid paremale teise argumendi aja väärtuse võrra. Vasakult nihutatud bitid asendatakse iga teostatud nihutamisoperatsiooni korral vasakpoolses osas numbriga 0.

Näide: 8 >>> 3 annab 1

8 (alus 10) = 00000000000000000000000000001000

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

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

-8 (alus 10) = 1111111111111111111111111111111000

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

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

3. Parempoolse nihkega bitimärk

See on binaarne operaator, mida tähistatakse sümboliga >>. See operaator nihutab esimese argumendi parempoolsemad bitid paremale teise argumendi aja väärtuse võrra. Vasakult nihutatud bitid asendatakse iga teostatud nihutamisoperatsiooni korral kõige vasakpoolsemas osas vasakpoolseima bittiga (st viitbittiga).

Näide: 8 >>> 3 annab 1

8 (alus 10) = 00000000000000000000000000001000

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

8 >> 3 00000000000000000000000000000001 = 1 (alus 10)

-8 (alus 10) = 1111111111111111111111111111111000

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

-8 >> 3 1111111111111111111111111111111111 = -1 (alus 10)

Järeldus

Argumendid teisendatakse 32-bitisteks kahendarvudeks ja neid väljendatakse bittide kujul (st 0 ja 1). Arvudes rohkem kui 32 bitti sisaldavates argumentides olevad numbrid kaotavad nende msb-d (kõige olulisem bit). Sama reegel kehtib ka vahetuse ajal, kui bitti nihutatakse vasakule, siis msb-s olevad täiendavad bitid kõrvale jäetakse ja parempoolse nihke korral parempoolsemas osas kasvav lisabitti loobutakse.

Enne: 110011010100011101001000100000001110010010001

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

Pärast: 11101001000100000001110010010001

Kõik vastavad bitid on omavahel seotud, st esimene bit teiste argumentide esimese bitiga, teine ​​bit teise bitiga ja nii edasi.

Operaatorit rakendatakse igal bitil (binaarse operaatori jaoks peaks see olema bitti paar), seetõttu nimetatakse seda JavaScriptis bittideks operaatoriteks.

Bitituperaatori praktiline rakendamine on bitilipud, kommunikatsioon pistikupesade / pordi kaudu, tihendamine, krüptimine, piiratud olekumasinad, graafika jne.

Soovitatavad artiklid

See on juhend bitwise operaatoritele JavaScriptis. Siin käsitleme sissejuhatust, JavaScripti bittide operaatorite tüüpe, näiteks loogilisi ja vahetustega operaatoreid koos selle toimingutega. Lisateabe saamiseks võite vaadata ka järgmisi artikleid -

  1. JavaScripti koostajad
  2. JavaScriptis tagurpidi
  3. Loop jaoks JavaScriptis
  4. Sissejuhatus JavaScripti

Kategooria: