令和6年度 I-2-1

科目: 基礎科目 / 分野: 情報・論理 / 年度: 令和6年度

I-2-1 問題画像

出典:公益社団法人 日本技術士会「技術士第一次試験 過去問題」

10進数の0.6を2進数に変換する基数変換の問題。小数部の2進数変換(2倍して整数部を取り出す操作の繰り返し)についての理解が必要。

解説

この問題で問われていること

10進数の小数「0.6」を2進数表現に変換したとき、小数点以下16桁までの表記として正しいものを選ぶ問題。

解き方

① 小数の10進数→2進数: 2倍して整数部(0か1)を取り出し、残りの小数部でくり返す
② 0.6→1.2(1)→0.4(0)→0.8(0)→1.6(1)→0.6に戻る → 1001のくり返し
③ 0.1001100110011001(①)

正解が正しい理由

小数部の10進数から2進数への変換は、値を2倍して整数部(0か1)を取り出し、残った小数部に対してこれを繰り返す。0.6→(×2)1.2→1と0.2、0.2→(×2)0.4→0と0.4、0.4→(×2)0.8→0と0.8、0.8→(×2)1.6→1と0.6、0.6→…と、4桁目で最初の0.6に戻るため「1001」の4桁パターンが無限に繰り返される(0.6=0.1001 1001 1001 …₂)。したがって小数点以下16桁は「1001100110011001」となり①が正しい(選択肢は16桁目までの切り捨て表記で、値は約0.59999)。

各選択肢について

覚えるべきポイント

10進数の小数を2進数に変換するには「2倍して整数部を取り出す」操作を繰り返す。0.6のように割り切れない値は循環する2進数(この場合は4桁周期の循環小数)になる点に注意する。0.1〜0.9のうち有限桁の2進数で表せるのは0.5だけである。

キーワード: 基数変換、2進数、小数、情報・論理

出題履歴

類題(同じ論点の別問題)