>>
è uno spostamento bit a bit destro. Prende i bit e li sposta a destra n posti . Per esempio, esaminiamo 35 >> 2
:
35 = 100011 shift two places
001000 = 8
E in effetti, 35 >> 2 == 8
.
|
è un OR bit a bit. Prende ogni bit in ogni operando e OR insieme. Puoi immaginarlo come una sorta di aggiunta binaria, ma non lo porti quando sia la parte superiore che quella inferiore sono 1
. Ad esempio, ecco 5 | 3
:
5 = 101
3 = 011
| -----
111 = 7
E in effetti, 5 | 3 == 7
.
Infine, &
è un AND bit per bit. Prende ogni bit in ogni operando, tranne che invece di dare 1 se uno o l'altro o l'altro è uno, dà 1 se un bit E l'altro sono entrambi uno. Ad esempio, ecco lo 5 & 3
:
5 = 101
3 = 011
& -----
001 = 1
Provalo; 5 & 3 == 1
.
Alcuni altri quelli che si potrebbe desiderare di essere a conoscenza di sono <<
, che è uno spostamento bit a bit a sinistra, e ^
, che è un XOR (0 quando entrambi i bit sono uguali, 1 se sono differenti) .
In realtà, è n modulo 32. 1 >> 32
è 1
. Non so perché.
Operatori binari. – Pointy
(-1) Ricerca "Operatori JavaScript" ... -1 perché questa è prontamente disponibile, le informazioni * e * sono già state trovate troppo spesso su StackOverflow. –
http://stackoverflow.com/questions/6194950/single-pipe-in-javascript, http://stackoverflow.com/questions/6997909/what-do-and-mean-in-javascript –