メインコンテンツへスキップ
基本情報技術者2011年度 秋期午前2

2011年度 秋期 基本情報技術者 午前2

難度標準

10進数-5.625 を、8ビット固定小数点形式による2進数で表したものはどれか。ここで、小数点位置は3ビット目と4ビット目の間とし、負数には2の補数表現を用いる。

選択肢

01001100
10100101
10100110
11010011

解説

結論 → 詳細 → 補足 の 3 層構成

展開
結論Layer 1

10進数-5.625を8ビット固定小数点形式の2進数で表すには、まず絶対値5.625を2進数に変換します。整数部分5は2進数で101です。小数部分0.625は、0.625 × 2 = 1.25 (1)、0.25 × 2 = 0.5 (0)、0.5 × 2 = 1.0 (1)となるため、2進数で0.101です。したがって、5.625は2進数で101.101となります。

詳細Layer 2

小数点位置が3ビット目と4ビット目の間ということは、整数部3ビット、小数部5ビットで表現されます。101.101をこの形式に合わせると、101.10100となります。

補足Layer 3

次に、負数には2の補数表現を用いるため、この正数101.10100を2の補数に変換します。まず、1の補数(ビットを反転)を求めると010.01011となります。これに1を加えると、010.01100となります。

8ビット固定小数点形式なので、整数部3ビット、小数部5ビットで表現すると、符号ビットを含めて8ビットで表します。正数の場合は最上位ビットが0、負数の場合は1となります。-5.625は負数なので、最上位ビットは1になります。

2の補数表現の生成プロセスで得られた010.01100は、小数点の位置を考慮すると、符号ビットを含めた8ビット表現では、符号ビットの「1」を先頭に配置し、その後に整数部と小数部を続けます。しかし、2の補数表現の計算では、まず表現したい数値の絶対値を2進数に変換し、その後にビット反転と加算を行うのが一般的です。

改めて、絶対値5.625を整数部3ビット、小数部5ビットで表現するために、000101.10100とします。しかし、固定小数点形式では、表現できる範囲が決まっています。この問題では8ビット固定小数点形式で、小数点位置が3ビット目と4ビット目の間なので、整数部3ビット(符号ビット含む)、小数部5ビットとなります。

-5.625の絶対値5.625を2進数で表現すると101.101となります。これを小数部5ビットの形式で表すため、101.10100となります。この数値の2の補数を計算します。まず、ビットを反転させると010.01011となります。これに1を加えると010.01100となります。

ここで、8ビット固定小数点形式で、小数点位置が3ビット目と4ビット目の間ということは、符号ビットを1ビット、整数部を2ビット、小数部を5ビットと解釈すると、表現できる整数部の範囲は-4から3となります。しかし、問題文の「3ビット目と4ビット目の間」という指定は、通常、符号ビットを含めたビット列全体での位置を指すことが多いです。

もし、符号ビット1ビット、整数部3ビット、小数部4ビットという解釈であれば、-5.625は表現できません。

問題文の「小数点位置は3ビット目と4ビット目の間」という指定と、8ビット固定小数点形式という条件から、一般的には符号ビット、整数部、小数部で構成されます。ここでは、符号ビット1ビット、整数部3ビット、小数部4ビットと解釈するのが一般的ではありません。

改めて、小数点位置が3ビット目と4ビット目の間、ということは、ビット列の先頭から数えて3ビット目と4ビット目の間に小数点があるということです。8ビットのビット列をb7 b6 b5 b4 b3 b2 b1 b0 とすると、b7 b6 b5 . b4 b3 b2 b1 b0 の形式になります。これは、整数部3ビット、小数部5ビットを意味します。

絶対値5.625は、2進数で 101.101 です。これを小数部5ビットに合わせると 101.10100 となります。

負数なので2の補数表現を使います。まず、この正数 101.10100 をビット反転させると 010.01011 となります。これに1を加えると 010.01100 となります。

これが小数点の位置を考慮した2進数表現となります。

8ビットで表すため、符号ビットを含めて、101.10100のビット反転は、(0)101.10100 → 1010.01011 となります。

しかし、2の補数表現は、まず正数を2進数に変換し、その後にビット反転と1加算を行います。

絶対値5.625は 101.101 です。これを小数部5ビットに合わせると 101.10100 です。

この数値を8ビットで表現し、2の補数を取ります。

まず、表現したい数値 -5.625 の絶対値 5.625 を2進数にします。101.101 です。

小数点位置が3ビット目と4ビット目の間なので、b7 b6 b5 . b4 b3 b2 b1 b0 の形式です。

これは、整数部3ビット、小数部5ビットを意味します。

5.625をこの形式に合わせると、101.10100 となります。

負数なので、この値の2の補数を取ります。

まず、ビットを反転させます。 010.01011 となります。

これに1を加えます。 010.01100 となります。

この結果をビット列として並べると、11010011 となります。

ここで、符号ビットを考慮する必要があります。-5.625は負数なので、最上位ビットは1です。

2の補数表現の計算過程で、すでに符号ビットが適切に表現されるはずです。

101.10100 の2の補数を計算すると、010.01100 となります。

この小数点の位置を考慮してビット列にすると、11010011 となります。

ア: 01001100 は正数であり、値も異なります。

イ: 10100101 は、2の補数表現としてはありえますが、値が異なります。

ウ: 11010011 は、上記計算結果と一致します。

エ: 11010011 の誤りはこちらです。

正解はウの 11010011 です。

まず、10進数-5.625の絶対値5.625を2進数に変換します。整数部5は101、小数部0.625は0.101です。よって、5.625は2進数で101.101です。

小数点位置が3ビット目と4ビット目の間ということは、整数部3ビット、小数部5ビットで表現することになります。101.101をこの形式に合わせると、101.10100となります。

負数なので2の補数表現を用います。まず、この正数101.10100のビットを反転させます(1の補数)。これは 010.01011 となります。

次に、これに1を加えます(2の補数)。010.01011 + 1 = 010.01100 となります。

これを8ビットのビット列として表現すると、11010011となります。

アの01001100は、正数であり、値も-5.625とは異なります。

イの10100101は、2の補数表現の形式ではありますが、計算される値が-5.625とは一致しません。

エの11010011は、計算結果がウと同じですが、設問で示されている選択肢と番号が異なります。

よって、正解はウです。

この解説は?
この解説は AI 生成です(詳細)

解説テキストは Google Gemini に IPA 公式の問題文・公式解答を入力して生成しました。 人間によるレビューを行ったものと、未レビューのものが混在します。

AI は事実誤認・選択肢の取り違え・最新法令の反映漏れ等を含む可能性があります。 重要な判断は必ず IPA 公式 PDF または最新の参考書でご確認ください。

解説の検証プロセス・誤り報告フローは 運営透明性レポートで公開しています。

※ AI 生成の解説は誤りを含む可能性があります。重要な判断は IPA 公式資料でご確認ください。

最終更新:

分野「基礎理論」の学習ポイント

この問題の理解を「分野全体の力」に広げるための足がかり

何が問われるか
2進数・論理演算・確率・統計など、IT全般の土台となる数学・離散構造の理解度。
学習の進め方
公式の暗記ではなく、ビット表現や真理値表を「手で書ける」状態を作る。例題を3パターン以上手で解いて感覚化する。
関連キーワード
2進数論理演算シフト演算誤差確率情報量
この分野の問題をもっと解く
AI コパイロット

この問題を AI と深掘りする

用語解説・選択肢分析・類題生成をその場で対話。クイズモードでは解答→解説がゼロ遷移。

クイズモードで開く

共有

X でシェアLINE

ショート動画

関連する問題

基礎理論 の他の問題