Bevezetés a Bitwise operátorokba a JavaScript-ben

A Bitwise operátorok a JavaScript-ben úgy működnek, hogy az operandumukon bináris számok (2. alap) ábrázolási formájukon működnek (különösen 32 bites számok formájában), nem pedig tizedes számukban (10. alap), oktális számokban (8. alap), vagy hexadecimális szám (16. alap) jelölés. Például az 1010 a tizedes szám bináris ábrázolása. A bit szerinti műveleteket a JavaScript a bináris ábrázolásban szereplő operátorok operandusaiin hajtja végre, de a kimenetet mindig a standard numerikus érték formájában adják vissza.

A bit bit operátor a JavaScript-ben konvertálja az operandusait a 2-bites aláírt egész formájuk 2-es komplementer formájává. Ezért minden alkalommal, amikor egy operátort egy egész számra dolgoznak, a származtatott érték az adott egész 2-es komplementer alakja. Egy egész szám 2-komplementerét a szám (azaz a bit bitjei nem a szám) plusz 1-es komplementere képezi.

Például a következő a 7-es szám 32-bites ábrázolása

00000000000000000000000000000111

Az alábbiakban 1 'kiegészítés van, azaz ~ 7

11111111111111111111111111111000

Az alábbiakban a 2. komplementer alakja látható, amely egyenlő -7-gyel

11111111111111111111111111111001

Bitwise operátorHasználatJelentés
Bitálisan ÉSx és yMinden bitpozícióban 1-et ad vissza, ha mindkét megfelelő bit 1, egyébként 0.
Bittenként VAGYx | yMinden bitpozícióban 1-et ad vissza, ha a megfelelő bit bármelyik értéke 1, egyébként 0.
Bitálisan XORx yMinden egyes bitpozícióban 0-t ad vissza, ha mindkét megfelelő bit értéke 1 vagy 0, egyébként 1, ha a bit eltérő.
Kicsit NEM~ xMegfordítja az x operandus bitjeit 1-ről 0-ra és fordítva.
Bal Shiftx << yA biteket balra tolja el az x bináris számnál y bittel, miközben jobbra nyomja a 0-at.
Jel elmozdulása jobbra váltásx >> yA biteket jobbra mozgatja az x bináris számon y-bittel, miközben a bal szélső bitet másolja balra 32 bit teljesítéséhez.
Nulla kitöltés jobbra váltásx >>> yA biteket jobbra tolja el az x bináris számon y bittel, miközben balra nyomja a 0-at.

Bitwise logikai operátorok a JavaScript-ben

A Bitwise Logical operátorok a legtöbb nyelvben használt logikai operátorokból állnak, de különböznek egymástól, mivel a bit bit logikai operátorok apránként működnek. Az alábbiakban a bitvagon logikai operátorokat használjuk a JavaScript-ben:

1. Bitálisan ÉS

Ez egy bináris operátor, ampersand és & szimbólummal jelölve, amely ÉS műveletet hajt végre az argumentumainak egymást követő párjain. A „&” operátor csak akkor ad vissza 1-et, ha mindkét 1 bit más, akkor 0-t ad vissza. Ezért az ÉS műveletet összekapcsolhatjuk a szorzással is, mivel mindkettő ugyanazt a választ adja.

xYX és Y
000
010
100
111

Példa

10 (alap 10) = 0000000000000000000000000000101010
13 (10 alap) = 00000000000000000000000000001101

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

10 & 13 00000000000000000000000000001000 = 8 (10. alap)

2. Bittenként VAGY

Ez egy bináris operátor, amelyet egy „|” függőleges sáv szimbólum jelöl, amely VAGY műveletet hajt végre az argumentumok egymást követő párjain. A „|” operátor 1-et ad vissza, ha az egyik bit 1-es, vagy mindkettő 1-es, egyébként 0-t ad vissza. A bitsenkénti VAGY „|” eltér a logikai VAGY „||” -tól, mivel apránként működik.

xYX | Y
000
011
101
111

Példa

10 (alap 10) = 0000000000000000000000000000101010
13 (10 alap) = 00000000000000000000000000001101

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

10. | 13 00000000000000000000000000001111 = 15 (10. alap)

3. Bitkor XOR

Ez egy bináris operátor, amelyet a caret „^” szimbólum jelöl, és amely XOR műveletet hajt végre az argumentumok egymást követő párjain. A „^” operátor 0-t ad vissza, ha mindkét bit azonos (azaz mindkettő 1 vagy mindkettő 0), egyébként 1-et ad vissza.

xYX Y
000
011
101
110

Példa

10 (alap 10) = 0000000000000000000000000000101010
13 (10 alap) = 00000000000000000000000000001101

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

10 13 00000000000000000000000000000111 = 7 (10. alap)

4. Bitkívül NEM

Ez egy egyhangú operátor, amelyet a tilde „~” szimbólum jelöl, és amely NEM műveletet hajt végre az argumentuma megfelelő bitjein. A „~” operátor megfordítja az operandus bitjeit, azaz 0-ról 1-re vagy 1-re 0-ra konvertálja.

x~ X
01
10

Példa

10 (alap 10) = 0000000000000000000000000000101010

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

~ 10 11111111111111111111111111110101

Bitwise Shift operátorok a JavaScript-ben

A bitváltásos művelet során két argumentumot vesz igénybe, ahol az első argumentum a bináris szám, amelyen az eltolás műveletet végrehajtja, és a második argumentum azt a bitszámot adja meg, amelyen keresztül az első argumentumot el kell tolni. A használt operátor meghatározza a váltás műveletének irányát a bináris számban.

1. Bittengeresen balra váltás

Ez egy bináris operátor, amelyet „<<” szimbólum jelöl. Ez az operátor az első argumentum jobb szélső bitjét balra tolja el a második argumentum időszakainak értékével. A jobbról eltolódott biteket a jobboldali részben a 0 váltja fel minden végrehajtott műszak műveletnél.

Példa: 8 << 3 hozam 64

8 (alap 10) = 00000000000000000000000000001000

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

8 << 3 00000000000000000000000001000000 = 64 (10. alap)

2. Bittengely jobbra váltás

Ez bináris operátor, amelyet „>>>” szimbólum jelöl. Ez az operátor az első argumentum jobb szélső bitjét jobbra tolja el a második argumentum időszakainak értékével. A balról elmozdított biteket a baloldali részben lévő 0-val helyettesítjük minden végrehajtott műszak műveletnél.

Példa: 8 >>> 3 hozamot ad 1

8 (alap 10) = 00000000000000000000000000001000

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

8 >>> 3 00000000000000000000000000000001 = 1 (10. alap)

-8 (10 alap) = 1111111111111111111111111111111000

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

-8 >>> 3 00011111111111111111111111111111 = 536870911 (10. alap)

3. A jobb irányú váltást megindító bitképes jel

Ez egy bináris operátor, amelyet „>>” szimbólum jelöl. Ez az operátor az első argumentum jobb szélső bitjét jobbra tolja el a második argumentum időszakainak értékével. A balról eltolódott biteket a baloldali bittel (azaz jelző bittel) cseréljük ki a bal oldali bal oldali részben minden végrehajtott műszak művelethez.

Példa: 8 >>> 3 hozamot ad 1

8 (alap 10) = 00000000000000000000000000001000

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

8 >> 3 00000000000000000000000000000001 = 1 (10. alap)

-8 (10 alap) = 1111111111111111111111111111111000

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

-8 >> 3 11111111111111111111111111111111 = -1 (10. alap)

Következtetés

Az érveket 32 ​​bites bináris számokká alakítják át, és bit formájában fejezik ki őket (azaz 0 és 1). Az argumentumokban lévő számok, amelyek több mint 32 bitet eredményeznek, az msb-ket (a legfontosabb bit) eldobják. Ugyanez a szabály érvényes akkor is, ha a műszak működése közben a bit eltolódás balra, akkor az msb-nél lévő extra biteket eldobják, és a jobb oldali műszak során a jobb szélső részén növekvő extra biteket eldobják.

Előtte: 110011010100011101001000100000001110010010001

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

Után: 11101001000100000001110010010001

Minden megfelelő bit párosul egymással, azaz az első bit az első argumentum más bitjeivel, a második bit a második bittel és így tovább.

Az operátort minden bitnél alkalmazzuk (a bináris operátor számára bit bitnek kell lennie), ezért JavaScriptben bitveres operátornak nevezzük.

A bit-bit operátor gyakorlati alkalmazása: Bit zászlók, kommunikáció aljzaton / portokon keresztül, tömörítés, titkosítás, véges állapotú gépek, grafikák stb.

Ajánlott cikkek

Ez egy útmutató a Bitwise operátorokhoz JavaScript-ben. Itt tárgyaljuk a bevezetést, a bit-bit operátorok típusait a JavaScript-ben, például a logikai és a shift operátorokat, valamint a műveleteket. A következő cikkeket is megnézheti további információkért -

  1. JavaScript fordító
  2. Fordítva a JavaScript-ben
  3. Loop számára a JavaScript-ben
  4. Bevezetés a JavaScript-be

Kategória: