
出典:公益社団法人 日本技術士会「技術士第一次試験 過去問題」
10進数の「10分の1」(0.1)を2進数で小数点以下16位まで表現したものを選ぶ問題。0.1は2進数では0.0001100110011…(1100の循環)となる。
10進数の0.1を2進数で表したとき、小数点以下16位までの表現として最も適切なものを選ぶ問題。
① 2進小数の位: 0.1(2進)=1/2、0.01=1/4、0.001=1/8、0.0001=1/16
② 0.1(10進)は 1/16=0.0625 以上 1/8=0.125 未満 → 最初の1は小数第4位。これを満たすのは③だけ(①は第6位、②は第5位、④は第3位、⑤は第2位)
③ ③
10進数の小数を2進数に変換するには、小数部に2を繰り返し掛け、整数部を順に取り出す。0.1×2=0.2(0)、0.2×2=0.4(0)、0.4×2=0.8(0)、0.8×2=1.6(1)、0.6×2=1.2(1)、0.2×2=0.4(0)、0.4×2=0.8(0)、0.8×2=1.6(1)、0.6×2=1.2(1)…と、0011の繰り返しとなる。よって0.1=(0.0001100110011001…)₂で、小数点以下16位までは0.0001100110011001となる。したがって③が正しい。
10進数の0.1は、2進数では有限小数にならず、0.0001100110011…(1001の繰返し)の循環小数になる。小数の2進数変換は、小数部に2を掛けて整数部を取り出す操作を繰り返す。近似的には、0.1≒1/16+1/32+…と桁の位置から大きさを見積もることもできる。
キーワード: 2進数、小数の変換、循環小数、10進数から2進数、情報・論理