本文へ移動

基本情報技術者試験 · 学習ガイド

2007年度 秋期 午後の問題・解答解説

旧制度の午前・午後と、2023年度以降の科目A・科目Bの公開問題を区別しています。現在の試験対策では現行シラバスと科目Bの形式を確認してください。公開問題は本試験の全出題を網羅する資料ではありません。

2007年度 秋期 午後の概要
30:00

問題番号から選ぶ

IEEE 754形式による単精度浮動小数点数の表現と加算

基礎理論 · 浮動小数点数 / IEEE 754 / 正規化 / 2進数 / 仮数部の桁合わせ

IEEE 754規格による単精度浮動小数点数(符号部1ビット、指数部8ビット、仮数部23ビット)の表現規則および加算処理に関する問題である。設問1では10進数 -0.75 をIEEE 754形式に変換したときの符号部 a、指数部 b、仮数部上位8けた c を求める。設問2では与えられた2つの単精度浮動小数点数を加算した結果を求める。

ア
設問1: 0 / 設問2: 指数部 10000000, 仮数部上位 10010
イ
設問1: 1 / 設問2: 指数部 10000000, 仮数部上位 11100
ウ
設問1: 01111110 / 設問2: 指数部 10000010, 仮数部上位 10010
エ
設問1: 01111111 / 設問2: 指数部 10000010, 仮数部上位 11100
オ
設問1: 10000000
カ
設問1: 11000000
解答・解説を表示

解答

設問1: a=イ, b=ウ, c=オ; 設問2: ウ

解説

まず要点:IEEE 754(浮動小数点数の表し方を定めた国際規格)の単精度では、符号1ビット・指数8ビット・仮数23ビットで数を表します。指数には決まった下駄(バイアスと呼ぶ127)を足して入れます。仮数は1.xxxxの形にそろえ(正規化)、先頭の1は省略します。足し算では、小さい方の指数を大きい方に合わせてから仮数を足し、最後にそろえ直します。

解き方

  1. 数を2進数に直し、1以上2未満の形になるように仮数部と指数部へ正規化します。
  2. 符号(正は0、負は1)、127を足した指数部、先頭の1を省いた仮数部を決めます。
  3. 足し算では、指数の小さい方の仮数をずらして大きい方にそろえてから足します。

小問ごとの答え

小問 設問1 a:イ
変換対象の数値 -0.75 は負の数であるため、符号部(ビット31)は 1 となります。
小問 設問1 b:ウ
-0.75 は2進数で -0.11(2) であり、正規化すると -1.1(2) × 2^(-1) となります。指数 B = -1 にバイアス値 127 を加えると 126 となり、8ビット2進数表記で 01111110 となります。
小問 設問1 c:オ
正規化した仮数 1.1(2) から整数部の 1 を除いた小数部分は .1(2) です。これをビット22から順に格納するため、仮数部上位8けたは 10000000 となります。
小問 設問2:ウ
数1は指数部128(B=1)で仮数が1.01(2)、数2は指数部130(B=3)で仮数が1.01(2)です。指数を大きい方の3に揃える桁合わせを行うと、数1は 0.0101(2) × 2^3 となります。加算すると (0.0101 + 1.0100)(2) × 2^3 = 1.1001(2) × 2^3 となり、指数部は 3 + 127 = 130 (10000010)、仮数部上位5ビットは 10010 となるためウが正解です。

覚えるポイント

  • IEEE 754単精度では指数に127を加えた値を格納し、仮数の先頭の1(ケントビット)は省略します。
  • 浮動小数点数の加算では、必ず指数の大きい方に合わせて仮数部を右シフトする桁合わせを行います。

間違えやすいところ

  • 指数部に127を足し忘れたり、2の補数と混同したりする間違いがあります。
  • 正規化で先頭の1を省かずにそのまま入れてしまうミスが多いです。

出題の前提:平成19年度秋期基本情報技術者試験午後問1出題条件

出典:IPA(PDF保管先:基本情報技術者試験ドットコム)『2007年度 秋期 午後』
IPA公式問題冊子(第三者保管の保存版) p.5 ↗(cdn.fe-siken.com) / IPA公式問題冊子(第三者保管の保存版) p.6 ↗(cdn.fe-siken.com)

2007年度 秋期 午後

参照した公式資料

IPA(PDF保管先:基本情報技術者試験ドットコム)が公開した2007年度 秋期 午後の問題・解答資料です。