ビット演算
ビット(0か1)に着目するよ
ビットのon/offを操作するよ
簡単に書くよ
ビット演算(読:ビットエンザン 英:bitwise operation)とは
コンピュータさんの気持ちになって、直接「0」と「1」を操作するイメージで何かすること。
少し小難しい書き方をすると
ビット(0か1)に着目して、そのon/offを操作すること
です。
詳しく書くよ
順番に見ていきましょう。
まずは予備知識として「ビット」について説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。
ビットは、コンピュータさんの世界における「0か1が入る箱」です。
あるいは、この「0か1が入る箱」の数を表す単位です。
例えば「4ビット」であれば「0か1が入る箱が4つあるよ」の意味になります。
ビットは
コンピュータが処理する最小単位
と言われています。
コンピュータさんは、実際はショボイやつです。
電気信号のonとoff、つまり「1」と「0」しか判別できません。
ただし、この「1」と「0」を、た~くさん組み合わせることによって、数字や文字、あるいは画像や動画などを扱っています。
数字を例に見てみましょう。
ここに0か1が入る箱が1つありました。
この状況で表現できる値は2つだけです。
・0
・1
に対応する何かを表現できます。
試しに、数字を2つ割り当ててみましょう。
・0:0
・1:1
とします。
0か1が入る箱が1つだけあるときは、数字の「0」と「1」を表現できました。
おっと、ピヨ太君が箱をもう1つ持ってきたようです。
0か1が入る箱が2つになりました。
箱が2つになると表現できる値は4つになります。
・0-0
・0-1
・1-0
・1-1
に対応する何かを表現できます。
せっかくなので数字を4つ割り当ててみましょう。
・0-0:0
・0-1:1
・1-0:2
・1-1:3
とします。
箱が1つのときは、表現できる数字は「0」と「1」の2つでした。
箱が2つになると、表現できる数字は「0」から「3」までの4つになりました。
おっと、ピヨ太君が、さらに箱をもう1つ持ってきたようです。
0か1が入る箱が今度は3つになりました。
箱が3つになると表現できる値は8つになります。
・0-0-0
・0-0-1
・0-1-0
・0-1-1
・1-0-0
・1-0-1
・1-1-0
・1-1-1
に対応する何かを表現できます。
せっかくなので数字を8つ割り当ててみましょう。
・0-0-0:0
・0-0-1:1
・0-1-0:2
・0-1-1:3
・1-0-0:4
・1-0-1:5
・1-1-0:6
・1-1-1:7
とします。
箱が1つのときは、表現できる数字は「0」と「1」の2つでした。
箱が2つになると、表現できる数字は「0」から「3」までの4つになりました。
箱が3つになると、表現できる数字は「0」から「7」までの8つになりました。
さらに箱の数を増やせば、より多くの数字を表現できるでしょう。
さらにさらに箱の数を増やせば、数字だけではなく文字も表現できそうです。
さらにさらにさらに箱の数を増やせば、画像とか動画も表現できるんじゃないですかね。
このように、0か1が入る箱を たくさん使うことで、コンピュータさんは数字や文字、あるいは画像や動画などのデータを扱っているのです。
コンピュータの世界におけるデータの根源は「0か1が入る箱」です。
すべてのデータは
0か1の寄せ集め
であると言えます。
コンピュータさんが判別できる「0か1(が入る箱)」がビットです。
このビットを寄せ集めて、あれやこれやのデータが形作られています。
あるいは「0か1(が入る箱)」の数を表す単位が「ビット」です。
例えば「4ビット」であれば「0か1が入る箱が4つあるよ」の意味になります。
以上を踏まえて、本題に入ります。
繰り返しになりますが、コンピュータの世界には「0」と「1」しかありません。
「0」と「1」の組み合わせに人間様が適当な意味を割り当てて使っています。
この「人間様が割り当てた適当な意味」を1回捨てて初心に立ち返ろう。
データは0と1の固まりだってことを思い出して操作しよう!
が「ビット演算」です。
例えば、そうですね。
「5」という数字を1つ左にずらしてみましょう。
「『5』を左にズラす」と言われるとピンと来ないかもしれませんが「『0000 0101』を左にズラす」と言われれば勘の良い方は分かるのではないでしょうか。
「0000 0101」は「5」を2進数(0と1の組み合わせ)で表したものです。
0000 0101
のビット(つまりは桁)を全部1つずつ左にズラして空いたところに「0」を埋めると
0000 1010
に なります。
2進数の「0000 1010」は10進数に直すと「10」です。
「5」を1つ左にズラしたら「10」になりました。
「5を1つ左にズラしたら10になる」です。
算数っぽく考えると「何のこっちゃ?」ですよね。
ですが、ビット演算と捉えれば何もおかしくありません。
このような
ビットに着目して、それを操作する
のがビット演算です。
ビット演算をするときはイメージが大事です。
数字と捉えてしまうと理解しにくいと思います。
旗を持ったおっさんが横一列に並んでいると考えてください。
そのおっさん達に「おまえは旗を上げろ!おまえは旗を下ろせ!」と命令するのがビット演算です。
今回はビットをズラすのを例に挙げましたが、他にも、いろいろなビット演算があります。
ビット演算で よく出てくる演算子は
・AND
・OR
・XOR
・NOT
あたりでしょうか。
それぞれの意味は、それぞれの用語の説明を ご覧ください。
一言でまとめるよ
まぁ「ビット演算」って単語が出てきたら「ビット
(0か1が入る箱)を操作するんだな~」と お考えください。
おまけ
■検索してみる?






