5分で分かる!ビット演算

演算

ビット演算とは

ビット演算は、「0」と「1」からなる2進数での演算のことをいいます。その「0」と「1」がビットと呼びます。プログラミングをしているとたまに出てきますが、WEBプログラミングでは、使うことはないかな(?)と思います。

AND演算

ビットがどちらも「1」の場合だけ「1」になります。
下記の例だと、上段と下段のビットの同じ位置で、「1」と「1」だったら「1」になり、それ以外は「0」になっていることが分かると思います。

2進数     | 10進数
------------------
00001010 | 10
00001100 | 12
----------------
00001000 | 8

OR演算

ビットのどちらかが「1」の場合に「1」にします。
下記の例だと、上段と下段のビットの同じ位置で、「1」があったら「1」になり、「1」がなかった「0」になっていることが分かると思います。

2進数     | 10進数
------------------
00001010 | 10
00001100 | 12
----------------
00001110 | 14

XOR演算

ビットが異なるの場合に「1」にします。
下記の例だと、上段と下段のビットの同じ位置で、「1」と「0」だったら「1」になり、それ以外は「0」になっていることが分かると思います。

2進数     | 10進数
------------------
00001010 | 10
00001100 | 12
----------------
00000110 | 6

NOT演算

ビットの「1」と「0」を反転する演算です。下記の例だと、「1」と「0」が反転していることが分かると思います。

2進数     | 10進数
------------------
00001010 | 10
----------------
11110101 | 245

右ビットシフト

ビットを右に1ビットずらす演算です。

2進数     | 10進数
------------------
00001010 | 10
----------------
00000101 | 5

左ビットシフト

ビットを左に1ビットずらす演算です。

2進数     | 10進数
------------------
00001010 | 10
----------------
00010100 | 20

まとめ

これがビット演算の基本です。ルールだけわかれば簡単ですよね。
プログラミングをするときに使って見るのも良いかもしれません。
補足ですが、10進数の変換は、下記のようにしています。

1桁目 : 2の0乗 = 1
2桁目 : 2の1乗 = 2
3桁目 : 2の2乗 = 4
4桁目 : 2の3乗 = 8

2進数で1になったもの桁ごとに足して計算をしています。
例えば、1010の場合は、8+0+2+0ということになります。