Introduzione agli operatori Bitwise in JavaScript

Gli operatori Bitwise in JavaScript agiscono sul loro operando operando su di essi nella loro forma di rappresentazione del numero binario (Base 2) (in particolare nella forma di numeri a 32 bit), piuttosto che nel loro numero decimale (Base 10), numeri ottali (Base 8) o notazione con numero esadecimale (Base 16). Ad esempio, 1010 è la rappresentazione binaria del numero decimale dieci. Le operazioni bit per bit in JavaScript vengono eseguite sugli operandi degli operatori nelle loro rappresentazioni binarie, ma l'output viene sempre restituito nella forma di valore numerico standard.

Un operatore bit per bit in JavaScript converte i loro operandi nella forma di complemento a 2 della loro forma intera con segno a 32 bit. Quindi, ogni volta che un operatore viene lavorato su un numero intero, il valore derivante è la forma di complemento di 2 di quel numero intero. Il complemento di 2 di un numero intero è il complemento di 1 del numero (ovvero non bit a bit del numero) più 1.

Ad esempio, la seguente è la rappresentazione a 32 bit del numero 7

00000000000000000000000000000111

Di seguito è un complemento di 1 ', cioè ~ 7

11111111111111111111111111111000

Di seguito è riportato il modulo del complemento di 2 che è uguale a -7

11111111111111111111111111111001

Operatore bit a bitusoSenso
Bitwise ANDx & yRestituirà 1 in ogni posizione di bit se entrambi i bit corrispondenti sono 1, altrimenti 0.
OR bit a bitx | yRestituirà 1 in ogni posizione di bit se uno dei bit corrispondenti è 1, altrimenti 0.
Bitwise XORx yRestituirà 0 in ogni posizione di bit se entrambi i bit corrispondenti sono 1 o 0 altrimenti 1 ogni volta che i bit sono diversi.
Bitwise NOT~ xCapovolge i bit dell'operando x da 1 a 0 e viceversa.
Tasto maiuscolo di sinistrax << ySposta i bit alla loro sinistra sul numero binario x di y bit mentre si preme 0 in posizione da destra.
Iscriviti propagando a destrax >> ySposta i bit a destra sul numero binario x di y bit durante la copia dei bit più a sinistra a sinistra per completare 32 bit.
Zero riempimento a destrax >>> ySposterà i bit alla loro destra sul numero binario x di y bit mentre si preme 0 in posizione da sinistra.

Operatori logici bit a bit in JavaScript

Gli operatori logici bit a bit sono costituiti da tutti gli operatori logici utilizzati nella maggior parte delle lingue, ma differiscono in un modo in cui gli operatori logici bit a bit operano bit per bit. I seguenti sono operatori logici bit a bit utilizzati in JavaScript:

1. AND bit a bit

Questo è un operatore binario indicato dal simbolo della e commerciale "&" che esegue un'operazione AND sulla coppia consecutiva di bit corrispondenti dei suoi argomenti. L'operatore “&” restituirà 1 solo se entrambi i bit 1 sono altrimenti restituirà 0. Pertanto possiamo anche correlare l'operazione AND con la moltiplicazione perché entrambi daranno la stessa risposta.

XYX & Y
000
010
100
111

Esempio

10 (base 10) = 00000000000000000000000000001010
13 (base 10) = 00000000000000000000000000001101

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

10 e 13 00000000000000000000000000001000 = 8 (base 10)

2. OR bit a bit

Questo è un operatore binario indicato dal simbolo di una barra verticale “|” che esegue un'operazione OR sulla coppia consecutiva di bit corrispondenti dei suoi argomenti. L'operatore “|” restituisce 1 se uno dei bit è 1 o entrambi sono 1 altrimenti restituirà 0. L'OR bit a bit “|” è diverso dall'OR logico “||” poiché funziona bit per bit.

XYX | Y
000
011
101
111

Esempio

10 (base 10) = 00000000000000000000000000001010
13 (base 10) = 00000000000000000000000000001101

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

10 | 13 00000000000000000000000000001111 = 15 (base 10)

3. XOR bit a bit

Questo è un operatore binario indicato dal simbolo del cursore "^" che esegue un'operazione XOR sulla coppia consecutiva di bit corrispondenti dei suoi argomenti. L'operatore “^” restituirà 0 se entrambi i bit sono uguali (ovvero entrambi sono 1 o entrambi sono 0) altrimenti restituirà 1.

XYX Y
000
011
101
110

Esempio

10 (base 10) = 00000000000000000000000000001010
13 (base 10) = 00000000000000000000000000001101

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

10 13 00000000000000000000000000000111 = 7 (base 10)

4. NON a bit

Questo è un operatore unario indicato dal simbolo di tilde “~” che esegue un'operazione NOT sui bit corrispondenti del suo argomento. L'operatore "~" inverte i bit dell'operando, ovvero converte 0 in 1 o 1 in 0.

X~ X
01
10

Esempio

10 (base 10) = 00000000000000000000000000001010

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

~ 10 11111111111111111111111111110101

Operatori Shift bit a bit in JavaScript

In shift shift bit accetta anche due argomenti in cui il primo argomento è il numero binario su cui verrà eseguita l'operazione di spostamento e il secondo argomento specifica il numero di bit con cui il primo argomento deve essere spostato. L'operatore utilizzato specifica la direzione dell'operazione di spostamento nel numero binario.

1. Spostamento a sinistra bit a bit

Questo è un operatore binario indicato dal simbolo "<<". Questo operatore sposta i bit più a destra del primo argomento alla loro sinistra in base al valore dei tempi del secondo argomento. I bit spostati da destra vengono sostituiti da 0 nella parte più a destra per ogni operazione di spostamento eseguita.

Esempio: 8 << 3 rese 64

8 (base 10) = 00000000000000000000000000001000

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

8 << 3 00000000000000000000000001000000 = 64 (base 10)

2. Spostamento a destra bit a bit

Questo è un operatore binario indicato dal simbolo ">>>". Questo operatore sposta i bit più a destra del primo argomento alla loro destra in base al valore dei tempi del secondo argomento. I bit spostati da sinistra vengono sostituiti da 0 nella parte più a sinistra per ciascuna operazione di spostamento eseguita.

Esempio: 8 >>> 3 rese 1

8 (base 10) = 00000000000000000000000000001000

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

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

-8 (base 10) = 11111111111111111111111111111000

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

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

3. Segno bit a bit che propaga lo spostamento a destra

Questo è un operatore binario indicato dal simbolo ">>". Questo operatore sposta i bit più a destra del primo argomento alla loro destra in base al valore dei tempi del secondo argomento. I bit spostati da sinistra vengono sostituiti dal bit più a sinistra (ovvero il segno bit) nella parte più a sinistra per ogni operazione di spostamento eseguita.

Esempio: 8 >>> 3 rese 1

8 (base 10) = 00000000000000000000000000001000

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

8 >> 3 00000000000000000000000000000001 = 1 (base 10)

-8 (base 10) = 11111111111111111111111111111000

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

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

Conclusione

Gli Argomenti vengono convertiti in numeri binari a 32 bit ed espressi sotto forma di bit (ovvero 0 e 1). I numeri negli argomenti risultanti con più di 32 bit vengono scartati dal loro msb (bit più significativo). La stessa regola si applica quando durante l'operazione di cambio se lo spostamento di bit a sinistra quindi i bit extra su msb vengono scartati e durante lo spostamento a destra, viene scartato il bit in più che cresce nella parte più a destra.

Prima: 110011010100011101001000100000001110010010001

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

Dopo: 11101001000100000001110010010001

Ogni bit corrispondente è accoppiato tra loro, cioè il primo bit con il primo bit di altri argomenti, il secondo bit con il secondo bit e così via.

L'operatore viene applicato ad ogni bit (per l'operatore binario dovrebbe essere una coppia di bit), quindi chiamato operatori bit a bit in JavaScript.

Applicazione pratica dell'operatore bit a bit sono flag di bit, comunicazione su socket / porte, compressione, crittografia, macchine a stati finiti, grafica, ecc.

Articoli consigliati

Questa è una guida per gli operatori Bitwise in JavaScript. Qui discutiamo dell'introduzione, dei tipi di operatori bit per bit in JavaScript come gli operatori logici e di spostamento insieme alle sue operazioni. Puoi anche consultare i seguenti articoli per saperne di più-

  1. Compilatori JavaScript
  2. Invertire in JavaScript
  3. Per Loop in JavaScript
  4. Introduzione a JavaScript

Categoria: