Domanda
Un mio amico chiede se potrebbe usare:
result |= condition
Invece di:
result = result || condition
in javascript, per operazioni booleane.
Sono ben consapevole che uno è bit a bit e l'altro è logico. Tuttavia, quale sarebbe l'effetto sulle variabili booleane?
Non sono attualmente davanti al mio computer ma mi chiedo anche se ci possa essere una cosa come a ||
= operatore.
Aggiornare
Ho appena capito che a boolean
il valore è essentialy a 1 bit value
. Questo significa che per booleans
il logical or
ha lo stesso di bitewise or
?
Così a|=b
sarebbe equivalente a a=a|b
?
risposte:
1 per risposta № 1Questo significa che per i booleani è logico o ha lo stesso di bitewise o?
Nel tuo caso, un po '.
Quando si usano le espressioni logiche, gli operandi possono essere true-ish o false-ish. Un'espressione OR qui restituisce il primo che è true-ish (non necessariamente il booleano true
), o se nessuno è, l'ultimo operando.
result || condition
ritorna result
Se result
è vero-ish, altrimenti condition
Quando si usano espressioni bitwise, gli operandi lo sonointeri a 32 bit con segno. Se lo si limita a un bit, questo assomiglia in qualche modo al comportamento delle espressioni logiche: Se un bit è impostato, un'espressione OR restituisce 1.
result | condition
Restituisce un intero con segno a 32 bit con valore 0 o 1 per gli operandi convertibili in un numero intero a 32 bit con solo il bit meno significativo utilizzato.
Tuttavia, quando si utilizzano espressioni bitwise sugli operandi che non sono un numero intero a 32 bit, le conversioni implicite a 32 bit interi devono essere eseguite e potrebbero esserci ulteriori casi limite. Non è consigliabile utilizzare espressioni bitwise per operandi logici.