Johdanto Bitwise-operaattoreihin JavaScript-sovelluksessa

Bitwise-operaattorit JavaScript: ssä toimivat operandinsa suhteen toimimalla heitä binaarinumeroiden (Base 2) esitysmuodossa (erityisesti 32-bittisten lukujen muodossa), eikä desimaalilukunaan (Base 10), oktaalilukuina (Base 8) tai heksadesimaaliluku (Base 16) -merkintä. Esimerkiksi 1010 on desimaaliluvun kymmenen binääriesitys. Bittisoperaatiot JavaScriptissä suoritetaan operaattoreiden operandeille niiden binaarisissa esityksissä, mutta lähtö palautetaan aina vakiona numeerisena arvomuodossa.

Bittisuuntainen operaattori JavaScript muuntaa heidän operandinsa 2: n komplementaarimuotoksi 32-bittiseksi allekirjoitettuna kokonaislukumuodossaan. Siksi aina, kun operaattoria käsitellään kokonaisluvun suhteen, johdannaisarvo on kyseisen kokonaisluvun 2-komplementtimuoto. Kokonaisluku 2: n komplementti on luvun (ts. Bittinä ei-luvun) komplementti 1: llä.

Esimerkiksi seuraava on luvun 7 32-bittinen esitys

00000000000000000000000000000111

Alla on 1 'komplementti eli ~ 7

11111111111111111111111111111000

Alla on 2: n komplementaarimuoto, joka on yhtä suuri kuin -7

11111111111111111111111111111001

Bitwise-operaattoriKäyttömerkitys
Bittisesti JAx & yPalauttaa yhden jokaisessa bittipaikassa, jos molemmat vastaavat bitit ovat 1, muuten 0.
Bittaisesti TAIx | yPalauttaa 1 jokaisessa bittipaikassa, jos jokin vastaavista biteistä on 1, muuten 0.
Bittaisesti XORx yPalauttaa arvon 0 jokaisessa bittipaikassa, jos molemmat vastaavat bitit ovat joko 1 tai 0 muuten 1, kun bitit ovat erilaisia.
Bittinä EI~ xKäännä operandin x bitit välillä 1 - 0 ja päinvastoin.
Vasen vaihtonäppäinx << ySiirtää bittejä vasemmalle binaariluvulla x y bittiä työntämällä 0 paikalleen oikealta.
Merkki etenee oikeallex >> ySiirtää bitit oikealle binaariluvulla x y-bittiä kopioimalla vasemmanpuoleisimmat bitit vasemmalle 32 bitin suorittamiseksi.
Nolla täyttää oikean vaihtox >>> ySiirtää bittejä oikealle binaariluvulla x y bittiä työntämällä 0 paikalleen vasemmalta.

Bitwise-loogiset operaattorit JavaScript-muodossa

Bittisesti loogiset operaattorit koostuvat kaikista loogisista operaattoreista, joita käytetään suurimmassa osassa kieliä, mutta ne ovat erilaisia ​​siinä suhteessa, että bittisesti loogiset operaattorit toimivat vähän kerrallaan. Seuraavat ovat bittisesti loogisia operaattoreita, joita käytetään JavaScript:

1. Bittesuuntainen AND

Tämä on binaarioperaattori, jota merkitään merkillä ampersand “&” ja joka suorittaa AND-operaation argumenttiensa peräkkäisillä pareilla. Operaattori “&” palauttaa 1 vain, jos molemmat bitit 1 ovat muuten, se palauttaa arvon 0. Siksi voimme myös korreloida JA-toiminnon kertolaskelmalla, koska molemmat antavat saman vastauksen.

XYX & Y
000
010
100
111

esimerkki

10 (pohja 10) = 00000000000000000000000000001010
13 (pohja 10) = 00000000000000000000000000001101

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

10 & 13 00000000000000000000000000001000 = 8 (pohja 10)

2. Bittaisesti TAI

Tämä on binaarioperaattori, jota merkitään pystysuoran palkin symbolilla "|", joka suorittaa TAI-toiminnon argumenttiensa vastaavien bittien peräkkäisellä parilla. "|" -Operaattori palauttaa 1, jos jompikumpi biteistä on 1 tai molemmat ovat 1 muuten, se palauttaa arvon 0. Bittisesti tai "|" eroaa loogisesta TAI "||", koska se toimii vähän kerrallaan.

XYX | Y
000
011
101
111

esimerkki

10 (pohja 10) = 00000000000000000000000000001010
13 (pohja 10) = 00000000000000000000000000001101

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

10 | 13 00000000000000000000000000001111 = 15 (pohja 10)

3. Bittisesti XOR

Tämä on binaarioperaattori, jota merkitään caret-symbolilla ”^”, joka suorittaa XOR-operaation argumenttiensa peräkkäisillä pareilla. Operaattori ”^” palauttaa arvon 0, jos molemmat bitit ovat samat (ts. Molemmat ovat 1 tai molemmat ovat 0), muuten se palauttaa 1.

XYX Y
000
011
101
110

esimerkki

10 (pohja 10) = 00000000000000000000000000001010
13 (pohja 10) = 00000000000000000000000000001101

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

10 13 00000000000000000000000000000111 = 7 (pohja 10)

4. bittinä EI

Tämä on yksiarvoinen operaattori, jota merkitään tilden symbolilla “~” ja joka suorittaa NOT-toiminnon argumentinsa vastaavilla biteillä. “~” -Operaattori kääntää operandin bitit, ts. Muuntaa 0 arvoksi 1 tai 1 arvoksi 0.

X~ X
01
10

esimerkki

10 (pohja 10) = 00000000000000000000000000001010

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

~ 10 1111111111111111111111111111110101

Bitwise Shift -operaattorit JavaScript-muodossa

Bituittain siirtämisessä toiminta vie myös kaksi argumenttia, joissa ensimmäinen argumentti on binääriluku, jolla siirtooperaatio suoritetaan, ja toinen argumentti määrittelee bittien lukumäärän, jolla ensimmäistä argumenttia on siirrettävä. Käytettävä operaattori määrittelee siirto-operaation suunnan binaarilukuna.

1. Bit bittiä vasen vaihto

Tämä on binaarioperaattori, jota merkitään symbolilla “<<”. Tämä operaattori siirtää ensimmäisen argumentin oikeanpuoleisimmat bitit vasemmalle toisen argumentti kertaa. Oikealta siirretyt bitit korvataan oikealla puolella olevalla bitillä 0 jokaisella suoritetulla siirtotoiminnolla.

Esimerkki: 8 << 3 tuottaa 64

8 (pohja 10) = 00000000000000000000000000001000

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

8 << 3 00000000000000000000000001000000 = 64 (pohja 10)

2. bittisuuntainen oikea siirto

Tämä on binaarioperaattori, jota merkitään symbolilla “>>>”. Tämä operaattori siirtää ensimmäisen argumentin oikeanpuoleisimmat bitit oikealle toisen argumentti kertaa. Vasemmalta siirretyt bitit korvataan 0: lla vasemmassa osassa jokaiselle suoritetulle siirtotoiminnolle.

Esimerkki: 8 >>> 3 tuottaa 1

8 (pohja 10) = 00000000000000000000000000001000

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

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

-8 (base 10) = 1111111111111111111111111111111000

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

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

3. Bittesignaali, joka etenee oikean siirtymän suhteen

Tämä on binaarioperaattori, jota merkitään symbolilla “>>”. Tämä operaattori siirtää ensimmäisen argumentin oikeanpuoleisimmat bitit oikealle toisen argumentti kertaa. Vasemmalta siirretyt bitit korvataan vasemmalla vasemmalla puolella (ts. Merkkibitillä) vasemmassa osassa kutakin suoritettua vaihtooperaatiota varten.

Esimerkki: 8 >>> 3 tuottaa 1

8 (pohja 10) = 00000000000000000000000000001000

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

8 >> 3 00000000000000000000000000000001 = 1 (pohja 10)

-8 (base 10) = 1111111111111111111111111111111000

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

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

johtopäätös

Argumentit muunnetaan 32-bittisiksi binaarilukuiksi ja ilmaistaan ​​biteinä (ts. 0 ja 1). Numerot argumentteissa, joissa tuloksena on yli 32 bittiä, saavat msb: nsä (merkittävin bitti) hylätä. Sama sääntö pätee siirron käytön aikana, jos bitinsiirto vasemmalle, msb: n ylimääräiset bitit hylätään ja oikeanpuoleisen siirron aikana oikeimmassa osassa kasvava ylimääräinen bitti hylätään.

Ennen: 110011010100011101001000100000001110010010001

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

Jälkeen: 11101001000100000001110010010001

Jokainen vastaava bitti paritetaan keskenään, ts. Ensimmäinen bitti muiden argumenttien ensimmäisen bitin kanssa, toinen bitti toisen bitin kanssa ja niin edelleen.

Operaattoria käytetään jokaisessa bitissä (binaarioperaattorissa sen tulisi olla bittipari), joten sitä kutsutaan bittisuuntaiseksi operaattoriksi JavaScriptillä.

Bittisähköisen operaattorin käytännön sovelluksia ovat bittiliput, tiedonsiirto pistorasian / porttien kautta, pakkaaminen, salaus, äärelliset tilakoneet, grafiikat jne.

Suositellut artikkelit

Tämä on opas Bitwise-operaattoreille JavaScript-muodossa. Tässä keskustellaan johdannosta, JavaScriptin bittisoperaattoreiden tyypeistä, kuten loogisista ja shift-operaattoreista sekä sen toiminnoista. Voit myös katsoa seuraavia artikkeleita saadaksesi lisätietoja-

  1. JavaScript-kääntäjät
  2. Käännä JavaScript
  3. Loop-palvelussa JavaScript
  4. Johdanto JavaScriptiin