二進数と十進数

IT業界では避けて通れない2進数。今回はIT企業らしく2進数のお話。

2進数の”1000”は、10進数で”8”。さすがにこれは誰でも知っていることなんだけど。
では、10進数の”0.1”は、2進数でどう表す?と聞くと、「え?」って人が割といるようです。
答えは「表せません」、なわけだけど。2進数での少数の表し方は基本的には10進数と同じです。
2進数
10進数
 
2進数
10進数
0.1
0.5

0.1
0.5
0.01
0.25

0.11
0.75
0.001
0.125

0.111
0.875





こんな感じです。桁が一つ下がると、1/2になるわけですね。ではさきほどの10進数の”0.1”はどうなるかというと、何桁2進数を連ねても表せません。
”0.000110011001100…”、こんな感じの循環小数になります。実際のところ、10進数の0.1〜0.9で2進数に変換して循環小数にならないのは、”0.5”だけだったりします。
これが「計算誤差」が発生する所以です。10進数で”0.1”と入力した段階ですでにコンピュータ内部では異なる数字になってしまっているのです。