Jak ustawić, wyczyścić, przełączyć i sprawdzić nieco w JavaScript?Jak ustawić, wyczyścić i przełączyć jeden bit w JavaScript?
Odpowiedz
Aby uzyskać maskę bitową:
var mask = 1 << 5; // gets the 6th bit
aby sprawdzić, czy bit jest ustawiony:
if ((n & mask) != 0) {
// bit is set
} else {
// bit is not set
}
Aby ustawić bit:
n |= mask;
Aby wyczyścić trochę:
n &= ~mask;
Aby przełączać się trochę:
n ^= mask;
odnoszą się do Javascript bitwise operators.
Chcę dodać kilka rzeczy (ze dzięki @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);
}
To wielkie dzięki. Czy możesz wyjaśnić, dlaczego bit_test działa? Rozumiem prawą zmianę, aby przenieść interesujący bit do skrajnej prawej pozycji, ale gubię się, próbując zrozumieć, czym jest wartość pośrednia i dlaczego jej pozostałość po podzieleniu przez 2 jest niezerowa po ustawieniu. – Raoul
Po uzyskaniu pożądanego bitu do pozycji z prawej strony, po prostu sprawdzenie, czy nowa wartość jest osłabiona (nowa wartość% 2! = 0). Numer upośledzenia będzie miał bit0 = 1 lub bit0 = 0 (ponieważ bit0 jest równy 2, a moc 0 wynosi 1) – UnLoCo
Zbudowałem klasę BitSet za pomocą informacji @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. Jak wydrukować jeden bit?
- 2. Jak wyczyścić interwał i ustawić go ponownie?
- 3. 32 bit unsigned operacja bitowe JavaScript jest jeden krótki
- 4. Odwróć jeden bit logiczny w Matlab
- 5. Maska bitowa: jak określić, czy tylko jeden bit jest ustawiony
- 6. svn: jak ustawić wykonywalny bit na pliku?
- 7. Jak przełączyć element w tablicy przy użyciu JavaScript?
- 8. Jak wyczyścić i zastąpić kolekcję w relacji jeden do wielu w Grails/Groovy
- 9. HTML jak wyczyścić wejście za pomocą javascript?
- 10. jak ustawić apostrof w javascript
- 11. jak przełączyć ikonę glifotypu
- 12. Czy istnieje coś takiego jak właściwy "bit" w JavaScript?
- 13. Typacasting bit bit copy
- 14. Jak ustawić jeden stan niestandardowy na innym?
- 15. Jak wyczyścić siatkę w Extjs
- 16. W jaki sposób std :: stringstream może ustawić bit fail/bad?
- 17. Jak wyczyścić javascript ów limit czasu ustawiony w funkcji
- 18. W JavaScript, jak mogę "wyczyścić" powrót (historia -1)?
- 19. Jak wyczyścić/ustawić pole hasła emptyText onfocus/onblur?
- 20. C/C++ Bit Array lub Bit Vector
- 21. JavaScript: jak ustawić krok przeciągnij i upuść w tabeli
- 22. Jak się wylogować/przełączyć konta w Sourcetree
- 23. Jak mogę ustawić domyślny import w JavaScript?
- 24. jak ustawić szerokość w Androidzie używając javascript?
- 25. Jak ustawić domyślne wartości boolowskie w JavaScript?
- 26. Jak ustawić fokus na okno modemu javascript?
- 27. Jak wyczyścić ekran w Pythonie
- 28. Jak wyczyścić konto domyślne GoogleApiClient i poświadczenia
- 29. Bit Striping w C
- 30. Jak wyczyścić ekran w MySQL?
@user JavaScript i C/C++ są różnymi językami. Bardzo pomocne jest uzyskanie od nich różnych odpowiedzi. – cmac