コンピュータで小数点数(小数点がある数)を表すとき、数式などで小数点を表すドット(.)を使わずに、0と1だけで表現する。そのための形式として、「固定小数点」と「浮動小数点」がある。
今回のテーマは、「固定小数点」である。
小数を重み表で変換
K進数の小数点以下nけた目は、K-nの重みがついている。
2進数の基数は2なので、小数点以下nけた目には、2-nの重みがついている。
なお、小数点位置は固定で変わらない。
![](https://i0.wp.com/my-studies.org/wp-content/uploads/2022/12/7e01e021e28d9afbf0b9d30bc948867b.png?resize=1024%2C444&ssl=1)
2進数の101.101を10進数に変換してみよう。
上の重み表の重みを足す。整数:$4+1=5$、小数:$0.5+0.125=0.625$
したがって、5.625となる。
2進数の小数を10進数に変換
それでは、2進数0.1101を10進数に変換してみよう。
なお、$2^{-n}というのは、2^nを分母にした分数である。$
![](https://i0.wp.com/my-studies.org/wp-content/uploads/2022/12/0caf8d739573020c6edc36de8144b599.png?resize=1024%2C576&ssl=1)
① $1×2^{-1}+1×2^{-2}+0×2^{-3}+1×2^{-4} = 0.8125$
② $\frac{1}{2}+\frac{1}{4}+\frac{1}{16}=\frac{8+4+1}{16}=\frac{13}{16}=0.8125$
③ 省略
④ $0.5+0.25+0.0625=0.8125$
10進数の小数を2進数に変換
次は、10進数の小数0.8125を2進数に変換してみよう。これも重み表を利用する。
![](https://i0.wp.com/my-studies.org/wp-content/uploads/2022/12/c7971c3fbf19ac7fc305afc038bd03fe.png?resize=1024%2C600&ssl=1)
いかがであろうか。小数の変換は情報技術で大切である。しっかりと理解しておきたい。
(参考)うかる! 基本情報技術者 [午前編] 福嶋 宏訓 (著) 日本経済新聞出版
コメント