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

NOT【ビット演算】

pointこの用語のポイント

point演算子だよ

pointビット演算で使うよ

pointビットが0だったら1に、1だったら0になるよ

スポンサーリンク

簡単に書くよ

NOT【ビット演算】(読:ノット)とは

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

「0だったら1にしなさい。1だったら0にしなさい」な演算子
です。


image piyo

詳しく書くよ

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

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

NOT

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

NOT2

ビットは

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

と言われています。

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

NOT3

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

NOT4

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

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

NOT5

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

・0
・1


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

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

・0:0
・1:1


とします。

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

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

NOT6

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

NOT7

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

NOT8

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

NOT9

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

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

NOT10

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

NOT11

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

NOT12

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

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

0か1の寄せ集め

であると言えます。

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

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

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

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

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

NOT13

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

例えば、そうですね。

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

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

0000 0101

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

0000 1010

に なります。

NOT14

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

NOT15

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

このような

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

のがビット演算です。

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

NOT16

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

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

ズバリ!

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

「0(off)だったら1(on)に、1(on)だったら0(off)にビットを反転させなさい」な演算子

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

NOT17

C言語などのプログラミング言語では「~チルダ」を「NOT」の演算子として使うことが多いです。

例えば

~ 1001 1010

のように書いて、答えは

0110 0101

に なります。
「0だったら1、1だったら0」ですからね。

NOT18

よく分からなければ、旗を持ったおっさんを想像してください。

NOT19

おっさんが旗を下げていたら上げさせます。

NOT20

旗を上げていたら下げさせます。

NOT21

それが「NOT」です。


image piyo2

一言でまとめるよ

まぁ「NOT」って演算子が出てきたら「0と1を逆にする演算子なんだな~」と お考えください。

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

おまけ

■訳してみるよ

「not(ノット)」の意味は「~でない」とかです。
否定を意味しています。


■検索してみる?




書籍画像
わわわ説明術コラム
宣伝だよ
「分かった!」と思わせる説明の技術 知識ゼロの相手にも伝わるようになる本【Audible】
サイバーセキュリティお嬢様と学ぶ 情報セキュリティの基本
体系的に学ぶ 安全なWebアプリケーションの作り方 第2版 脆弱性が生まれる原理と対策の実践