サルではわからない2進数講座

バー

さて今回学ぶのは、2進数というちょっと数学チックなものです。

ここで筆記用具を用意してくれ。

われわれが日常使っている数字は10進数です。どこらへんが10なのかと

いうと0〜9までの 10種類の数 を使っているというところです。



当然だが一の位で3を表せば 3、 一の位で8を表せば 8 、しかし一の位で

10を表すことはできない。そこで必要となるのが次の桁(十の位)だ。



例えば 17 だったら 1×(10) + 7×(1)より 十の位に1、

一の位に7 となる。



256だったら 2×(100) + 5×(10) + 6×(1) より

百の位に 2、十の位に5 、 一の位に6 となる。





(問)1024 を 上のように記述しなさい。





(答)1×(1000)+ 0×(100)+ 2×(10) + 4×(1)



さて、できただろうか。

ここで見てもらいたいのは( )の中身は1、10、100、・・・という

桁を表していることに気づくだろう。



ここで1、10、100、・・・を別の方法で書くことにする。

つまり、例をあげると 1000 は 10 の3乗だよね。

ここで、

10 の3乗 のことを 10^3 と書くことにする。ほかにも

3 の8乗 は 3^8 となり、 5の2乗は 5^2 と書ける。



(問)100、10000、10を上の方式で書きなさい。



(答)10^2 、 10^4 、10^1



ここで少し数学を思い出すと、Xの0乗は 1 つまり X^0=1

Xは何でもいいので、 2^0=1 、5^0=1 、5432^0=1

と書くことができる。

ここでは10を用いているので 1を 10^0 と書こう。



さてもう一度 1024 を 書くとすると

1×(10^3)+0×(10^2)+2×(10^1)+4×(10^0)

となるね。



(問)12345678を上の方式で書きなさい。



(答)

1×(10^7)+2×(10^6)+3×(10^5)+4×(10^4)+5×(10^3)+6×(10^2)+7×(10^1)+8×(10^0)





それでは一般的に4桁の数字abcdを考えてみよう。

ちょっと考えてみて



abcdなので



a×(10^3)+b×(10^2)+c×(10^1)+d×(10^0)



とできましたね。





さて本題の2進数に入るとしよう。2進数は 2 というのだから

2種類の数字、つまり0と1のみで成り立っている。

小さい順にかくと

0、1、10、11、100、101、110、111・・・



となります。一見、訳が分からないかもしれないが、だいじょうぶ。

上でやったことが今すぐ役に立ちます。



4桁の数字abcd が10進数の場合



a×(10^3)+b×(10^2)+c×(10^1)+d×(10^0)

でしたが



4桁の数字abcd が2進数の場合

a×(2^3)+b×(2^2)+c×(2^1)+d×(2^0)

となります。



見てわかるように、10のところが2に変わっただけです。



(例題)

2進数 1101 は 10進数で いくつでしょう。



(答)

1×(2^3)+1×(2^2)+0×(2^1)+1×(2^0)



=1× 8 +1× 4 +0× 2 +1× 1



=8+4+0+1



=13 よって 10進数で 13





(問) 2進数 1010 は 10進数で いくつでしょう。





(答)

1×(2^3)+0×(2^2)+1×(2^1)+0×(2^0)



=1× 8 +0× 4 +1× 2 +0× 1



=8+0+2+0



=10 よって 10進数で 10





ここで いちいち10進数で とか 2進数で をかくのは面倒なので



10進数で 23 という表現を (23)I とし

2進数で 101 という表現を (101)A とします。



つまり

(1101)A = (13)I

(1010)A = (10)I



ということになります。



上では4桁(abcd)Aでしかやっていませんが、

5桁(abcde)Aの場合も



a×(2^4)+b×(2^3)+c×(2^2)+d×(2^1)+e×(2^0)



また、3桁(abc)Aの場合も

a×(2^2)+b×(2^1)+c×(2^0)



となり,何桁でも対応できます。



(練習問題)次の2進数を10進数になおしなさい。



(1)(101)A

(2)(11111)A

(3)(11)A

(4)(1)A

(5)(0)A

(6)(10)A

(7)(1010101)A





(答)途中の式は省きました。

(1)(5)I

(2)(31)I

(3)(3)I

(4)(1)I

(5)(0)I

(6)(2)I

(7)(85)I



これで 2進から10進への変換はできましたね。

次に10進から2進への変換を学びます。2進から10進への変換が掛け算

なのだから、10進から2進への変換は?

そう、割り算を用います。



その手順は例えば(abcd)Iとすると

1.4桁の10進数abcdを2で割ります。

2.商を書きます。

3.余りを求めます。そしてこの余りが2進数の一番右の桁の数字となります

4.求めた商を2で割ります。

5.商を書きます。

6.余りを求めます。そしてこの余りが2進数の次の桁の数字となります。

7.再び4.に行き、商が0になるまで続けます。



(例題)(22)I を2進数表示しなさい。



(答)

22を2で割ると 商が11、余りが0 よって(????0)A



次に今の商11を2で割ると 商が 5、余りが1 よって(???10)A



次に今の商 5を2で割ると 商が 2、余りが1 よって(??110)A



次に今の商 2を2で割ると 商が 1、余りが0 よって(?0110)A



次に今の商 1を2で割ると 商が 0、余りが1 よって(10110)A



ここで商が0なのでストップ。よって(10110)A が答。





(練習問題)次の10進数を2進数になおしなさい。



(1)(6)I

(2)(10)I

(3)(19)I

(4)(45)I



 





(答)途中の式は省きました。

(1)(110)A

(2)(1010)A

(3)(10011)A

(4)(101101)A



[応用編 16進数]

さてコンピュータでは10進、2進の他に、16進も使います。

16進数は16というので16種類の数字を使うことが予想されます。

しかし、われわれは0〜9以外に数字は知りません。

そこで16進では0〜9とA〜Fを使用します。

つまり
(0)O = (0)I

(1)O = (1)I

(2)O = (2)I







(9)O = (9)I

(A)O = (10)I

(B)O = (11)I

(C)O = (12)I

(D)O = (13)I

(E)O = (14)I

(F)O = (15)I

(10)O = (16)I

(11)O = (17)I







です。

16進から10進への変換も同じように

a×(16^3)+b×(16^2)+c×(16^1)+d×(16^0)

となります。





(例題)(2FC)O を10進数で表せ。



(答)

2×(16^2)+ F×(16^1)+ C×(16^0)



ここでFを15、Cを12に書き直します。



=2×(16^2)+15×(16^1)+12×(16^0)



=2×( 256 )+15×( 16 )+12×( 1 )



=512+240+12



=764 よって 10進数で 764





(練習問題)次の16進数を10進数になおしなさい。(電卓使用可)



(1)(A9)O

(2)(48)O

(3)(E3B)O



 

(答)途中の式は省きました。

(1)(169)I

(2)(72)I

(3)(3643)I



今度は10進から16進への変換ですが、これも同じようにできます。



(例題)(3927)I を16進数表示しなさい。



(答)

3927を16で割ると 商が245、余りが 7 よって(??7)O



次に今の商 245を16で割ると 商が 15、余りが 5 よって(?57)O



次に今の商 15を16で割ると 商が 0、余りが15 よって(F57)O



ここで商が0なのでストップ。よって(F57)O が答。





(練習問題)次の10進数を16進数になおしなさい。(電卓使用可)



(1)(221)I

(2)(686)I

(3)(3076)I







(答)途中の式は省きました。

(1)(DD)O

(2)(2AE)O

(3)(C04)O





[N進数]

2進、16進ができるのだから、一般的なN進数もできるはずです。



(練習問題)次の問に答えなさい。



(1)(137)G を 10進数で

(2)(137)I を 8進数で

(3)(2011)B を 10進数で







(答)途中の式は省きました。

(1)(95)I

(2)(211)G

(3)(58)I



ご苦労様です。

さて最後にまとめると



(abcd)I というのは

a に10^3 つまり 1000の 重み(位)

b に10^2 つまり 100の 重み(位)

c に10^1 つまり 10の 重み(位)

d に10^0 つまり 1の 重み(位)

があることになります。



同様に(abcd)A というのは

a に2^3 つまり 8の 重み(位)

b に2^2 つまり 4の 重み(位)

c に2^1 つまり 2の 重み(位)

d に2^0 つまり 1の 重み(位)

があることになります。



同様に(abcd)O というのは

a に16^3 つまり 4096の 重み(位)

b に16^2 つまり 256の 重み(位)

c に16^1 つまり 16の 重み(位)

d に16^0 つまり 1の 重み(位)

があることになります。

以上で講座は終わりです。



お疲れさまでした。




紫玉知識のお部屋に戻る

紫玉メニューに戻る