Wie kann man ein Bit in JavaScript setzen, löschen, umschalten und prüfen?Wie können Sie ein einzelnes Bit in JavaScript setzen, löschen und aktivieren?
Antwort
Um eine Bitmaske zu erhalten:
var mask = 1 << 5; // gets the 6th bit
Um zu testen, ob ein Bit gesetzt ist:
if ((n & mask) != 0) {
// bit is set
} else {
// bit is not set
}
ein bisschen ein:
n |= mask;
ein bisschen zu löschen:
n &= ~mask;
Um ein wenig umzuschalten:
n ^= mask;
zum Javascript bitwise operators finden.
Ich möchte einige Dinge hinzufügen (mit Dank an @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);
}
Das ist toll, danke. Können Sie erklären, warum bit_test funktioniert? Ich verstehe die richtige Verschiebung, um das interessante Bit zur äußersten rechten Position zu bewegen, aber ich verliere es zu verstehen, was der Zwischenwert ist und warum sein Rest, wenn er durch 2 geteilt wird, ungleich null ist, wenn er gesetzt wird. – Raoul
Nachdem Sie das gewünschte Bit an die äußerste rechte Position gebracht haben, testen Sie einfach, ob der neue Wert beeinträchtigt ist (new_value% 2! = 0). Eine Störungszahl hat Bit0 = 1 oder sonst Bit0 = 0 (weil Bit0 Gewicht 2 ist, um 0 zu versorgen, was 1 ist) – UnLoCo
ich eine BitSet Klasse mit Hilfe von @cletus Informationen gebaut:
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. einfache Art und Weise zu setzen/ungesetzt ein einzelnes Bit
- 2. Wie können Sie ein Kontrollkästchen an ein einzelnes Bit einer Flags-Enumeration binden?
- 3. Wie können Sie ein einzelnes Objekt in .NET einbinden?
- 4. Weisen Sie ein einzelnes Bit von STD_LOGIC_VECTOR zu STD_LOGIC
- 5. Setzen Sie verschiedene Stile auf ein einzelnes Element
- 6. Wie können Sie Peek und Pop in iOS WebView aktivieren?
- 7. Wie entziehe ich ein einzelnes Zitat (') in JavaScript?
- 8. Was kostet $ .when für ein einzelnes $ .Löschen?
- 9. Schnellste Möglichkeiten, ein Bit zu setzen und zu bekommen
- 10. Bitoperation: Erhalte ein einzelnes Bit in einer Zahl
- 11. Können Sie ein Cookie nur für domain.tld und www.domain.tld setzen?
- 12. Wie aktivieren Sie Javascript in einem WebView
- 13. Entfernen Sie alle mehrfachen Leerzeichen in Javascript und ersetzen Sie sie durch ein einzelnes Leerzeichen
- 14. wie man einzelnes Zitat in Javascript
- 15. C - BitArray - Setze ein einzelnes Bit von uint64_t
- 16. Wie ein Timer in Javascript setzen
- 17. JavaScript - Können wir JavaScript-Objekte in Cookies setzen?
- 18. Aktivieren Sie 32-Bit-Apps in der 64-Bit-Azure-Webanwendung.
- 19. Können Sie eine bedingte Anweisung in ein Here-doc setzen?
- 20. Wie löschen Sie den Fokus in Javascript?
- 21. Wie ein einzelnes Byte in einen String
- 22. Löschen Sie Operation in Javascript
- 23. löschen String aus Kommas und setzen Sie es in Array
- 24. Wie kann ein einzelnes Bit einer Binärzahl als Toggle aktualisiert werden?
- 25. Wie aktivieren und deaktivieren Sie eine Schaltfläche mit Javascript?
- 26. Wie können separate Spalten für Jahr, Monat und Tag in ein einzelnes Datum umgewandelt werden?
- 27. Aktualisieren Sie ein einzelnes Sprite in einer Spielschleife
- 28. Aktivieren Sie Kontrollkästchen mit Javascript
- 29. Parsen Sie ein einzelnes Attribut in SQL
- 30. Löschen Sie ein bestimmtes Element in einem Array in Javascript
@user JavaScript und C/C++ sind verschiedene Sprachen. Sehr hilfreich, um unterschiedliche Antworten von beiden zu haben. – cmac