論理とは何か?

 よく論理的に話せとか、論理的に考えろなどと言う方がいらっしゃいますが、そういう方はひとまず置いておいて、数学やコンピューターサイエンスの観点から論理とは何かをお話ししたいと思います。

 論理とは必ず答え(結果)が、「はい」か「いいえ」になることを言います。

論理演算と論理式

 コンピューターでは様々な計算を行っていますが、それを論理演算として行っています。論理演算では、「はい」は「TRUE(真)」「いいえ」は「FALSE(偽)」と表します。論理演算では「TRUE」は「1」は「FALSE」は「0」と表すこともあります。

TRUEYesはい
FALSENoいいえ
表1

 その論理演算を行うための式が論理式です。以下は論理式の簡単な例です。(※記号 == は両辺が等しいことを表すものとします。)

x == 0

 変数xにどんな値が入っても必ず、答え(結果)が「TRUE」か「FALSE」になります。例えばxが0ならこの式は成り立つので、「TRUE」。xが0以外ならこの式は成り立たないので、「FALSE」となります。

 コンピューターはプログラムで動きますが、そのプログラム自体が大きな論理式であると言えます。

2進数とbit(ビット)

 ではなぜコンピューターを動かすプログラムが論理式である必要があるのでしょうか?

 コンピューターは「0」か「1」で計算していると聞いたことはありますか?これをさらに具体的に言うと、コンピューターは2進数で計算を行っています。私たちが普段用いているのは10進数です。10進数では、9の次は10となり桁が1つ増えます。一方2進数では、1の次はもう桁上がりして10となります。

2進数(2で桁上がり)10進数(10で桁上がり)
00
10(←桁上がり)
11
100(←桁上がり)
101
110
111
1000(←桁上がり)
1001
101010(←桁上がり)
表2

 2進数では、あらゆる数値(データ)を「0」と「1」だけで表すことができるのです。この「0」か「1」どちらかになる2進数の1桁をbit(ビット)と言います。以下の図は珠が1つしかないそろばんです。そろばんの珠が下がっているときが「0」、上がっているときが「1」です。このそろばんの1桁が1bitで、8桁つまり8bitで1byte(バイト)です。byteはデータの容量などでよく使われている単位ですね。

1Byteそろばん(そろばんの町、小野市の特産品として商品化してほしいけど多分売れない。)

 1byteでは0から255までの数値(データ)を表せます。2進数のn桁目の値は、2n-1です。例えば、3桁目なら23-1で、4です。ちなみに10進数ならn桁目の値は10n-1です。例えば3桁目なら103-1で100になります。各桁の値をすべてを足し合わせるので、例えば1Byteそろばんの1桁目と3桁目の珠が上がっていれば、101。これを10進数になおすと、1+4で5になります。

n桁目2n-110n-1
120 (1)100 (1)
221 (2)101 (10)
322 (4)102 (100)
423 (8)103 (1,000)
524 (16)104 (10,000)
625 (32)105 (100,000)
726 (64)106 (1,000,000)
827 (128)107 (10,000,000)
表3

 上記のようにコンピューターは、「0」と「1」の組み合わせでデータを表現しているため、コンピューターを動かすプログラムは論理式、つまり結果が必ず「FALSE(0)」か「TRUE(1)」になる式でないといけないのです。

個別指導IT塾
ロボットプログラミング教室
オンライン英会話
PC修理・トラブル対応・カスタム
PC販売・中古PC販売・不要PC回収
インターネット回線・セキュリティ