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となります。
読み込み中...
読み込み中...
10進数-5.625 を、8ビット固定小数点形式による2進数で表したものはどれか。ここで、小数点位置は3ビット目と4ビット目の間とし、負数には2の補数表現を用いる。
結論 → 詳細 → 補足 の 3 層構成
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となります。
小数点位置が3ビット目と4ビット目の間ということは、整数部3ビット、小数部5ビットで表現されます。101.101をこの形式に合わせると、101.10100となります。
次に、負数には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は、計算結果がウと同じですが、設問で示されている選択肢と番号が異なります。
よって、正解はウです。
解説は Google Gemini に IPA 公式の問題文・公式解答を入力して生成しています。 事実誤認・選択肢の取り違え・最新法令の反映漏れ等を含む可能性があるため、 重要な判断は必ず IPA 公式資料でご確認ください。
最終更新:
検証プロセス・誤り報告フローは 運営透明性レポートで公開しています。
この問題の理解を「分野全体の力」に広げるための足がかり
用語解説・選択肢分析・類題生成をその場で対話。クイズモードでは解答→解説がゼロ遷移。
基礎理論 の他の問題
基本情報技術者 の同じ分野を年度をまたいで演習する
基本情報技術者 勉強時間の目安|社会人・学生・未経験別の合格モデル
基本情報技術者試験の合格に必要な勉強時間を、社会人・学生・IT未経験の3パターン別に分解。週次の時間配分例と科目A/Bの配分指針を実例で解説します。
基本情報技術者 科目B完全対策|疑似言語・アルゴリズムを確実に解く方法
基本情報技術者試験の科目Bは疑似言語とアルゴリズムが中心。トレース力の鍛え方・頻出パターン(ソート・再帰・リスト)の解法を、AIコパイロット活用法とともに解説します。
基本情報のアルゴリズムが苦手な人の克服ステップ|挫折せずに科目Bを突破する
基本情報技術者試験の科目Bで多くの受験者が挫折するアルゴリズム分野。苦手意識を解消し、確実に得点できるようになるための学習ステップと心の作り方を解説します。
基本情報技術者試験 出題傾向の最新分析|2024〜2025年で増えた論点と捨て論点
基本情報技術者試験の直近2年の出題傾向を分析し、増加している新論点・減少している論点・捨てて良い論点を整理。学習計画の優先度付けに活用できます。