|
|||||||||||||
|
|||||||||||||
|
基数での表現は整数のみではなく,小数でもできる.
整数と同じく重みという言葉を用い定義する.→基数
n 進数の基数はn であり,小数点第 k 桁の重みは n−k となる.
例えば,小数第3位までのn 進小数は
0.ijk=i×n−1+j×n−2+k×n−3
(i,j,k は,n 進数で使われる0∼n−1 までの数)
を意味する.
10進小数0.123では
0.123=1×10−1+2×10−2+3×10−3
=1×0.1+2×0.01+3×0.01
である.
上記の定義より2進小数0.1101は
(0.1101)2=1×2−1+1×2−2+0×2−3+1×2−4
=0.5+0.25+0.0625
なお,10進数との対応を下の表に示す.
10進数 | 0.5 | 0.25 | 0.125 | 0.0625 | 0.03125 |
2進数 | 0.1 | 0.01 | 0.001 | 0.0001 | 0.00001 |
変換する2進小数の各桁に重みを掛け求める.
【例】
(0.1011)2=1×2−1+0×2−2+1×2−3+1×2−4
=0.5+0.125+0.0625
=(0.6875)10
ある10進小数0.a1a2a3⋯an を考える.a1,a2,a3,⋯,an は1~9の自然数である.
この10進小数を2進少数に変換すると
(0.a1a2a3⋯an)10=(0.b1b2b3⋯bn)2 ・・・・・・(1)
となったとする.b1,b2,b3,⋯,bn は0か1である.
(1)の両辺を基数表現に直すと
(2)の両辺を2倍する.
(3)の左辺は
となる.よって,(3)の左辺の10進数の整数部は1か0である.ここで,左辺の値が1より大きいなら(ii),1より小さいなら(iii)の操作を行う.
なお(ii)と(iii)の操作後,右辺の小数点以下が0(言い換えると1)となれば(iv)へ.
(3)の右辺は(b1.b2b3⋯bn)2 となる.
(b1.b2b3⋯bn)2>1
より
b1=1
が得られる.
(3)の両辺から1を引いた後、左辺を10進小数に,右辺を2進小数に戻して改めて(1)とし,(i)に戻る.この時,2進小数は(0.b2b3⋯bn)2 である.
(3)の右辺は(b1.b2b3⋯bn)2 となる.
0<(b1.b2b3⋯bn)2<1
より
b1=0
が得られる.
(3)の左辺を10進小数に,右辺を2進小数に戻して改めて(1)とし,(i)に戻る.この時,2進小数は(0.b2b3⋯bn)2 である.
b1∼bn を小数点以下順番に並べると10進小数を2進小数で表せる.
以下に,計算例を示す.
最終更新日:2023年10月6日