Come impostare, cancellare, attivare e controllare un bit in JavaScript?Come impostare, cancellare e attivare un singolo bit in JavaScript?
risposta
Per ottenere una maschera di bit:
var mask = 1 << 5; // gets the 6th bit
per verificare se è impostato un po ':
if ((n & mask) != 0) {
// bit is set
} else {
// bit is not set
}
Per impostare un po':
n |= mask;
Per cancellare un po ':
n &= ~mask;
Per passare un po ':
n ^= mask;
Fare riferimento alla Javascript bitwise operators.
voglio aggiungere alcune cose (con grazie a @ Cletus)
function bit_test(num, bit){
return ((num>>bit) % 2 != 0)
}
function bit_set(num, bit){
return num | 1<<bit;
}
function bit_clear(num, bit){
return num & ~(1<<bit);
}
function bit_toggle(num, bit){
return bit_test(num, bit) ? bit_clear(num, bit) : bit_set(num, bit);
}
Questo è fantastico, grazie. Puoi spiegare perché bit_test funziona? Capisco lo spostamento corretto per spostare il bit interessante nella posizione più a destra, ma mi perdo cercando di capire quale sia il valore intermedio e perché il suo resto quando diviso per 2 sia diverso da zero quando impostato. – Raoul
Dopo aver ottenuto il bit desiderato nella posizione più a destra, è sufficiente verificare se il nuovo valore è compromesso (new_value% 2! = 0). Un numero indebolito avrà bit0 = 1 oppure bit0 = 0 (perché bit0 peso è 2 per alimentare 0 che è 1) – UnLoCo
ho costruito una classe BitSet con l'aiuto delle informazioni @ Cletus:
function BitSet() {
this.n = 0;
}
BitSet.prototype.set = function(p) {
this.n |= (1 << p);
}
BitSet.prototype.test = function(p) {
return (this.n & (1 << p)) !== 0;
}
BitSet.prototype.clear = function(p) {
this.n &= ~(1 << p);
}
BitSet.prototype.toggle = function(p) {
this.n ^= (1 << p);
}
- 1. modo semplice per impostare/disinserire un singolo bit
- 2. come impostare e attivare una transizione css da javascript
- 3. Come attivare il javascript minification?
- 4. Può un singolo SetEvent() attivare più WaitForSingleObject()
- 5. Come attivare Javascript/jQuery
- 6. Come impostare $ setdirty su un singolo input
- 7. Come attivare un elemento nell'array utilizzando JavaScript?
- 8. Come attivare un evento javascript personalizzato in IE8?
- 9. ~ operatore bit a bit in JavaScript
- 10. Rails 3: Come attivare l'invio di un modulo tramite javascript?
- 11. Come posso ottenere/impostare singoli bit in un float?
- 12. come impostare un singolo file in ng-flow
- 13. Operazioni bit a bit a 48 bit in Javascript?
- 14. JavaScript: convertire un intero 52-bit per interi 20-bit e 32-bit
- 15. Come cancellare un timeout javascript thats impostare all'interno di una funzione
- 16. Come impostare un allarme per attivare correttamente a tempo fisso?
- 17. Come impostare Evil Bit sul traffico in uscita
- 18. come attivare/impostare permanentemente l'event_scheduler globale su 1 in mysql
- 19. Come disconnettersi da amazon cognito javascript e cancellare l'identità cacheId
- 20. Come impostare UISegmentedControl Tinta per singolo segmento
- 21. Come attivare un evento click "isTrusted = true" utilizzando JavaScript?
- 22. Come attivare javascript sull'evento di stampa?
- 23. Come attivare il layout/off auto per un singolo controller di vista in storyboard
- 24. Un distruttore - dovrei usare cancellare o cancellare []?
- 25. svn: come impostare il bit eseguibile su un file?
- 26. Vuoi attivare l'evento Dropdown SelectedIndexChanged in Javascript
- 27. Che cos'è l'hash SHA-256 di un singolo bit "1"?
- 28. Attendi prima di attivare una funzione da eseguire in JavaScript
- 29. Si sta disabilitando un singolo bit in flags con gli interi Python di lunghezza variabile?
- 30. Come cancellare un UIWebView?
@user JavaScript e C/C++ sono lingue diverse Molto utile avere risposte diverse da entrambi. – cmac