ビット演算子(&,|,^ )はビット単位の論理演算を行う。
ビット演算子は各桁のビット値(1または0)に対して1を真、0を偽として論理演算を行う。
ビット演算子は論理演算子(&&,||)におけるtrue・falseをビット1・0に置き換えて論理演算を行うだけなので処理の意味は分かりやすい。
しかしパソコンの処理速度が上がった現在ではビット演算子を使う場所がイメージしにくい。
ここでは簡単なビット演算子の論理積を利用するコードを示す。
10進数 | 2進数(ビット) |
4 | 00000100 |
3 | 00000011 |
4&3 | 00000000 |
上記のように(10進数)3とビット演算の論理積を行うと(10進数)4以上は0になる。それを利用すると下記のようなコードを簡潔に書ける。
// numの値を0,1,2と増やし値が3の場合は0にセットする処理。
// (10進数)4で2進数の桁が上がる*ために(10進数)4と3との論理積は0になる。そのことを利用する。
function counter (num) {
return ++num & 3;
}
*2進数では一般に2の累乗(2,4,8,16…)で桁が上がる。
No comments yet.
改行と段落タグは自動で挿入されます。
メールアドレスは表示されません。