コンピューター(2進数)は、「.」(ピリオド、ドット)で小数点を表示できない。そのため0と1で小数点を表現する。その方法のひとつが、固定小数点形式。
固定小数点形式とは、文字通り小数点の区切り場所を固定すること。3桁目と4桁目の間と決めてしまう。01010101という2進数の場合、右から3桁目の「1」と左隣の「0」の間に小数点があると考える。
小数点の位置はルールとして宣言される。例えば以下のよう。
固定小数点形式において、1バイト(8ビット)のデータを、
上位4ビットを整数部、下位4ビットを小数部として表す。
このとき、2進数「01101011」は10進数でいくつか。
「0110」が整数部、「1011」が小数部。実質「0110.1011」という意味になる。
10進数に変換するときには、桁の重みを掛けてすべて足す。これを整数部と小数部に分けて考える。
整数部の「0110」を10進数にするには、「0×20+1×21+1×22+0×23」で「6」。
小数部の「1011」を10進数にするには、「1×2-1+0×2-2+1×2-3+1×2-4」で計算する。-1乗は0.5(1/2)、-2乗は0.25(1/4)、-3乗は0.125(1/8)、-4乗は0.0625(1/16)と2分の1ずつ少なくなっている累乗を、それぞれの値にかける。「1×0.5+0×0.25+1×0.125+1×0.0625」で「0.6875」
整数部の6と小数部の0.6825を足すと「6.6825」であり、これが。2進数「0110.1011」を10進数に変換した値ということになる。
コメント