Funkcja upraszczająca operacje na bitach w JavaScript.
var Binary = function(val){
val = val || 0;
return {
value: function(v){
if( typeof v === 'undefined' )
return val;
val = v;
},
bit: function(n, v){
if( typeof v === 'undefined' )
return val & (1<<n) ? 1 : 0;
if( v ){
val |= 1<<n;
}else{
val &= ~(1<<n);
}
},
toString: function(){
return val.toString(2);
}
};
};
Warto pamiętać, że operacje bitowe w JavaScript są powolne, ponieważ JavaScript przechowuje wszystkie liczby (Number) jako double. W związku z tym każda operacja bitowa (przesunięcie bitowe, suma bitowa czy iloczyn bitowy) wymusza konwersję double na int.
// utworz nowa wartosc 5
var b = new Binary(5);
// odczytaj drugi bit
console.log(b.bit(2));
// ustaw pierwszy bit na 1
b.bit(1, true);
// odczytaj wartosc liczbowa
console.log(b.value());
Brak komentarzy:
Prześlij komentarz