マナビング基本情報技術者

2進小数の位取りは割り算でどう決まる?

基本情報技術者試験 平成31年度春期 午前 問1 / 基礎理論 › 離散数学

過去問にチャレンジ

平成31年度春期 午前 問1

10進数の演算式7÷32の結果を2進数で表したものはどれか。

  1. ア

    0.001011

  2. イ

    0.001101

  3. ウ

    0.00111

  4. エ

    0.0111

会話形式の解説

講師講師
まず、32が2の何乗かと、2進小数の各桁が表す値に注目します。
受験者受験者
32は2の5乗です。7を2進数にすると111ですが、小数点を何桁動かすかで迷います。
講師講師
111を32で割るので、小数点を左へ5桁移します。結果は0.00111です。
受験者受験者
0.00111の1は小数第3位から第5位ですね。それぞれどんな値ですか。
講師講師
順に1/8、1/16、1/32です。足すと7/32になり、元の計算と一致します。
受験者受験者
0.0111も1が三つありますが、先頭の1の位置が違います。
講師講師
そうです。0.0111は1/4+1/8+1/16=7/16で、求める値の2倍です。
受験者受験者
0.001011と0.001101は桁数が同じなので、1のある位置を一つずつ見ます。
講師講師
0.001011は1/8+1/32+1/64=11/64です。7/32を14/64に直すと、一致しません。
受験者受験者
0.001101は1/8+1/16+1/64=13/64で、これも14/64とは違います。
講師講師
そのとおりです。候補ごとに1の立つ桁の値を足せば、元の分数と比較できます。
受験者受験者
2の累乗で割るときは桁を移し、迷ったら分数に戻して確認します。
講師講師
2進小数の小数第n位は2の−n乗です。1の数だけでなく、その位置も確かめます。

まとめ

32は2の5乗なので、7を表す2進数111の小数点を左へ5桁移します。得られる0.00111は、1/8+1/16+1/32=7/32です。他の候補は1が立つ桁の値を足しても7/32になりません。2進小数では、1の数とともに位置を確認します。

解答・解説

正解はウです

この問題のテーマ

10進数の割り算の結果を、2進小数の位取りに従って表す問題です。

解き方の考え方

32は2の5乗、7は2進数で111です。したがって、111を小数点から右へ5桁分移すと0.00111になります。各選択肢も小数部分を分数に直せば、計算結果と照合できます。

選択肢ごとの解説

  1. ×ア  0.001011
    0.001011の1が立つ桁を足すと、1/8+1/32+1/64=11/64です。求める7/32は14/64なので一致しません。
  2. ×イ  0.001101
    0.001101を分数に直すと、1/8+1/16+1/64=13/64です。これも7/32=14/64とは異なります。
  3. ○ウ  0.00111
    0.00111では、小数第3位から第5位までが1です。その値は1/8+1/16+1/32=7/32となり、7÷32と一致します。
  4. ×エ  0.0111
    0.0111の値は1/4+1/8+1/16=7/16です。求める7/32の2倍なので、先頭の1が立つ桁を確かめると違いが分かります。

POINT

  • 2進小数では、小数第n位の1は2の−n乗を表します。
  • 2の累乗で割るときは、2進数の桁をその指数の数だけ右へ移すと考えられます。
  • 候補を確かめるときは、1が立つ桁の値を足して元の分数と比較します。

※出典:平成31年度春期 基本情報技術者試験 午前 問1