「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

AND【ビット演算】

pointこの用語のポイント

point演算子だよ

pointビット演算で使うよ

point2つのビットが両方1だったら1、それ以外は0になるよ

スポンサーリンク

簡単に書くよ

AND【ビット演算】(読:アンド)とは

ビット(0か1が入る箱)に着目して、そのon/offを操作する作業(ビット演算)で使う演算子のひとつ
であり

「2つのビットが、どちらも1だったら1ね。それ以外は0ね」な演算子
です。


image piyo

詳しく書くよ

順番に見ていきましょう。
まずは予備知識として「ビット」と「ビット演算」について結構ガッツリ説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。

ビットは、コンピュータさんの世界における「0か1が入る箱」です。

AND

あるいは、この「0か1が入る箱」の数を表す単位です。
例えば「4ビット」であれば「0か1が入る箱が4つあるよ」の意味になります。

AND2

ビットは

コンピュータが処理する最小単位

と言われています。

コンピュータさんは、実際はショボイやつです。
電気信号のonとoff、つまり「1」と「0」しか判別できません。

AND3

ただし、この「1」と「0」を、た~くさん組み合わせることによって、数字や文字、あるいは画像動画などを扱っています。

AND4

数字を例に見てみましょう。

ここに0か1が入る箱が1つありました。

AND5

この状況で表現できる値は2つだけです。

・0
・1


に対応する何かを表現できます。

試しに、数字を2つ割り当ててみましょう。

・0:0
・1:1


とします。

0か1が入る箱が1つだけあるときは、数字の「0」と「1」を表現できました。

おっと、ピヨ太君が箱をもう1つ持ってきたようです。

AND6

0か1が入る箱が2つになりました。

AND7

箱が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つ持ってきたようです。

AND8

0か1が入る箱が今度は3つになりました。

AND9

箱が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つになりました。

さらに箱の数を増やせば、より多くの数字を表現できるでしょう。

AND10

さらにさらに箱の数を増やせば、数字だけではなく文字も表現できそうです。

AND11

さらにさらにさらに箱の数を増やせば、画像とか動画も表現できるんじゃないですかね。

AND12

このように、0か1が入る箱を たくさん使うことで、コンピュータさんは数字や文字、あるいは画像や動画などのデータを扱っているのです。

コンピュータの世界におけるデータの根源は「0か1が入る箱」です。
すべてのデータは

0か1の寄せ集め

であると言えます。

コンピュータさんが判別できる「0か1(が入る箱)」がビットです。
このビットを寄せ集めて、あれやこれやのデータが形作られています。

あるいは「0か1(が入る箱)」の数を表す単位が「ビット」です。
例えば「4ビット」であれば「0か1が入る箱が4つあるよ」の意味になります。

以上がビットの説明です。
次に、ビット演算について説明します。

ビット演算は「ビットに着目して、そのon/offを操作すること」です。

繰り返しになりますが、コンピュータの世界には「0」と「1」しかありません。
「0」と「1」の組み合わせに人間様が適当な意味を割り当てて使っています。

AND13

この「人間様が割り当てた適当な意味」を1回捨てて初心に立ち返ろう。
「データは0と1の固まりだってことを思い出して操作しよう!」がビット演算です。

例えば、そうですね。

「5」という数字を1つ左にずらしてみましょう。

「『5』を左にズラす」と言われるとピンと来ないかもしれませんが「『0000 0101』を左にズラす」と言われれば勘の良い方は分かるのではないでしょうか。
「0000 0101」は「5」を2進数(0と1の組み合わせ)で表したものです。

0000 0101

のビット(つまりは桁)を全部1つずつ左にズラして空いたところに「0」を埋めると

0000 1010

に なります。

AND14

2進数の「0000 1010」は10進数に直すと「10」です。
「5」を1つ左にズラしたら「10」になりました。

AND15

「5を1つ左にズラしたら10になる」です。
算数っぽく考えると「何のこっちゃ?」ですよね。
ですが、ビット演算と捉えれば何もおかしくありません。

このような

ビットに着目して、それを操作する

のがビット演算です。

ビット演算をするときはイメージが大事です。
数字と捉えてしまうと理解しにくいと思います。
旗を持ったおっさんが横一列に並んでいると考えてください。
そのおっさん達に「おまえは旗を上げろ!おまえは旗を下ろせ!」と命令するのがビット演算です。

AND16

今回はビットをズラすのを例に挙げましたが、他にも、いろいろなビット演算があります。

以上がビット演算の説明です。
ここまでを踏まえて、本題に入ります。

ズバリ!

ビット演算で出てくる演算子のひとつで

「2つのビットを比較して両方1(on)だったら1(on)、それ以外は0(off)にしなさい」な演算子

が「AND」です。
日本語で「論理積」と表現されることも あります。

AND17

C言語などのプログラミング言語では「&アンパサンド」を「AND」の演算子として使うことが多いです。

例えば

0010 1011 & 1001 1010

のように書いて、答えは

0000 1010

に なります。
「どっちも1だったら1、それ以外は0」ですからね。

AND18

よく分からない人は、旗を持った2人のおっさんを想像してください。

AND19

このおっさん達が両方とも旗を上げていたら旗を上げます。

AND20

それ以外は旗を下げます。

AND21

それが「AND」です。


image piyo2

一言でまとめるよ

まぁ「AND」って演算子が出てきたら「両方1だったら1、それ以外は0になる演算子なんだな~」と お考えください。

一番上に戻るよ
スポンサーリンク
書籍画像003
書籍画像013

おまけ

■訳してみるよ

「and(アンド)」の意味は

・そして
・~と


とかです。


■検索してみる?




書籍画像
わわわ説明術コラム
宣伝だよ
実務で役立つ ログの教科書 基礎知識から収集方法・分析手法・トラブルシューティング・パフォーマンス最適化・機械学習での活用まで
「分かった!」と思わせる説明の技術 知識ゼロの相手にも伝わるようになる本
AI用語図鑑 ビジネス・開発・試験対策に使える厳選キーワード256