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-operaattori | Käyttö | merkitys |
Bittisesti JA | x & y | Palauttaa yhden jokaisessa bittipaikassa, jos molemmat vastaavat bitit ovat 1, muuten 0. |
Bittaisesti TAI | x | y | Palauttaa 1 jokaisessa bittipaikassa, jos jokin vastaavista biteistä on 1, muuten 0. |
Bittaisesti XOR | x y | Palauttaa arvon 0 jokaisessa bittipaikassa, jos molemmat vastaavat bitit ovat joko 1 tai 0 muuten 1, kun bitit ovat erilaisia. |
Bittinä EI | ~ x | Käännä operandin x bitit välillä 1 - 0 ja päinvastoin. |
Vasen vaihtonäppäin | x << y | Siirtää bittejä vasemmalle binaariluvulla x y bittiä työntämällä 0 paikalleen oikealta. |
Merkki etenee oikealle | x >> y | Siirtää bitit oikealle binaariluvulla x y-bittiä kopioimalla vasemmanpuoleisimmat bitit vasemmalle 32 bitin suorittamiseksi. |
Nolla täyttää oikean vaihto | x >>> y | Siirtää 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.
X | Y | X & Y |
0 | 0 | 0 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
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.
X | Y | X | Y |
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 1 |
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.
X | Y | X Y |
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
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 |
0 | 1 |
1 | 0 |
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-
- JavaScript-kääntäjät
- Käännä JavaScript
- Loop-palvelussa JavaScript
- Johdanto JavaScriptiin