一般的なJavaScriptビット操作(Bitwise)
1332 ワード
ビット操作
JavaScriptの数字は、IEEE-754(Institute of Electrical and Electronics Engineers)規格に従って64ビット形式で格納されます.ビット動作では、数字は符号付き32ビットフォーマットに変換される.各演算子は32ビット数を直接操作して結果を得る.変換が必要ですが、このプロセスはJavaScriptの他の数学演算やブール操作に比べてずっと速いです.
色が入れ替わる
32桁の数字の2進数の下位は偶数の最低位が0、奇数の最低位が1であることを表す.この数が偶数の場合、1とビットで加算された結果は0です.この数が奇数の場合、1とビットで加算された結果は1です.この方法を用いて色の交互を実現することができ、効率は純粋な数学演算(例えば、型取り)より50%速くなる可能性がある.
for (let i = Things.length - 1; i >= 0; i--) {
if(i & 1) {
className = 'oddColor';
}else {
className = 'evenColor';
}
}
ビットマスク
ビットマスクは、複数のブールオプションが同時に存在する場合を処理するために使用されます.単一の数値の各ビットを用いてオプションが成立するか否かを判定し、ブール値タグからなる配列に効率的に数値を変換する.マスクの各オプションの値は2のべき乗に等しい.
const OPTION_A = 1;
const OPTION_B = 2;
const OPTION_C = 4;
const options = OPTION_A | OPTION_B;
// A options
if(options & OPTION_A) {
// code here
}
// A options
if(options & OPTION_B) {
// code here
}
// A options
if(options & OPTION_C) {
// code here
}