2026年版・1-2

浮動小数点数・誤差・シフト演算の一問一答

基本情報技術者試験 科目A「基礎理論」から、浮動小数点数・誤差・シフト演算に関する4択問題を10問。「答えと解説を見る」を開くと、正解とその理由がその場で読めます。会員登録は不要です。

この分野の演習

全10問/解説つき・基本無料

アプリ形式で解く(全600問) 基礎理論の要点解説を読む
問題

上から順に解いてみてください。答えは各問の下で確認できます。科目Aの本試験と同じく、4択で出題しています。

問11-2

値がほぼ等しい2つの数値の減算を行ったとき、結果の有効数字の桁数が大きく減ってしまうことによって生じる誤差はどれか。

  • ①丸め誤差
  • ②情報落ち
  • ③桁落ち
  • ④打切り誤差
答えと解説を見る
正解 ③桁落ち
解説
桁落ちは、絶対値がほぼ等しい数値どうしを減算したときに、上位の桁が打ち消し合って有効数字の桁数が大きく減ってしまうことで生じる誤差です。例えば、有効数字4桁の 1.234 と 1.233 の差は 0.001 となり、有効数字は1桁しか残りません。

他の選択肢が不適切な理由
・情報落ち:絶対値の大きな数と小さな数を加減算したときに、小さい方の数値の一部または全部が結果に反映されないことで生じる誤差です。
・丸め誤差:決められた桁数に収めるため、四捨五入・切捨て・切上げをすることで生じる誤差です。
・打切り誤差:無限に続く計算を、途中で打ち切ることで生じる誤差です。

覚え方のポイント
「桁落ち=ほぼ等しい数の引き算」「情報落ち=大きい数と小さい数の足し算・引き算」。どちらも「○○落ち」なので、演算の組合せで区別するのがコツです。
問21-2

絶対値が非常に大きな数値と非常に小さな数値を加算したとき、小さい方の数値が結果に反映されずに生じる誤差はどれか。

  • ①オーバーフロー
  • ②情報落ち
  • ③桁落ち
  • ④打切り誤差
答えと解説を見る
正解 ②情報落ち
解説
浮動小数点数は、表現できる有効数字の桁数が決まっています。絶対値が大きく異なる2つの数値を加減算すると、指数部をそろえる際に小さい方の数値の下位の桁がはみ出してしまい、結果に反映されなくなります。これを情報落ちといいます。対策としては、絶対値の小さい数値どうしから先に加算する方法があります。

他の選択肢が不適切な理由
・オーバーフロー:計算結果が、その形式で表現できる最大値を超えてしまうことです。
・桁落ち:値がほぼ等しい数値どうしの減算で、有効数字の桁数が減ることです。
・打切り誤差:無限に続く計算を途中で打ち切ることで生じる誤差です。

覚え方のポイント
情報落ちの対策「小さい数から先に足す」はよく問われます。小さい数どうしを先に足してある程度の大きさにしておけば、大きな数に足しても無視されにくくなります。
問31-2

円周率の計算のように、本来は無限に続く計算を、ある項や回数で止めたために生じる誤差はどれか。

  • ①丸め誤差
  • ②打切り誤差
  • ③桁落ち
  • ④情報落ち
答えと解説を見る
正解 ②打切り誤差
解説
打切り誤差は、無限に続く級数の計算や、繰り返しの計算を、決められた回数や精度に達した時点で止めることによって生じる誤差です。止めた後の項の分だけ、真の値とのずれが残ります。

他の選択肢が不適切な理由
・丸め誤差:計算結果を決められた桁数に収めるため、四捨五入・切捨て・切上げを行うことで生じる誤差です。
・桁落ち:値がほぼ等しい数値どうしの減算で、有効数字の桁数が減る誤差です。
・情報落ち:絶対値が大きく異なる数値の加減算で、小さい方の数値が反映されない誤差です。

覚え方のポイント
「打切り=計算そのものを途中でやめる」「丸め=結果の桁を削る」。どちらも桁や計算を減らすことによる誤差ですが、「何を」減らしたのかで区別します。
問41-2

正の整数xを2進数で表し、左に3ビット論理シフトした結果は、元のxの何倍になるか。桁あふれは起きないものとする。

  • ①8倍
  • ②6倍
  • ③3倍
  • ④9倍
答えと解説を見る
正解 ①8倍
解説
2進数では、左に1ビットシフトするごとに値は2倍になります(10進数で左に1桁ずらすと10倍になるのと同じ考え方です)。3ビット左にシフトすると、
2 × 2 × 2 = 23 = 8倍
になります。例えば、5(00000101)を左に3ビットシフトすると 00101000 = 40 で、5の8倍です。

他の選択肢が不適切な理由
・3倍:シフトしたビット数をそのまま倍率とした誤りです。
・6倍:3×2と計算した誤りです。
・9倍:3の2乗と計算した誤りです。

覚え方のポイント
「左にnビット=2n倍」「右にnビット=2n分の1(余りは切り捨て)」。シフト演算は掛け算・割り算を高速に行う方法として使われます。
問51-2

正の整数xを、左に3ビット論理シフトした値と、左に1ビット論理シフトした値とを加算した。結果はxの何倍になるか。桁あふれは起きないものとする。

  • ①4倍
  • ②6倍
  • ③12倍
  • ④10倍
答えと解説を見る
正解 ④10倍
解説
左に3ビットシフトするとxの23=8倍、左に1ビットシフトするとxの21=2倍になります。これらを加算すると、
8x + 2x = 10x
したがって、xの10倍になります。このように、シフト演算と加算を組み合わせると、2のべき乗以外の数も掛けられます。

他の選択肢が不適切な理由
・4倍:シフトしたビット数(3と1)を足しただけの誤りです。
・6倍:8倍から2倍を引いた場合の値です。
・12倍:8倍と4倍(2ビットシフト)を足した場合の値です。

覚え方のポイント
10倍=8倍+2倍、6倍=4倍+2倍、7倍=8倍−1倍のように、掛けたい数を2のべき乗の和や差に分解するのがシフト計算の基本です。
問61-2

8ビットの2の補数表現で 11110000(10進数の−16)を、右に2ビット算術シフトした結果はどれか。

  • ①00111100
  • ②11000000
  • ③11111100
  • ④10111100
答えと解説を見る
正解 ③11111100
解説
算術シフトは、符号付きの数値を扱うシフトで、右シフトでは空いた上位のビットに符号ビット(最上位ビット)と同じ値を入れます。これにより、負の数でも符号を保ったまま2n分の1にできます。
11110000 → 右に2ビット算術シフト → 11111100
11111100は2の補数で −4 なので、−16 ÷ 4 = −4 と一致します。

他の選択肢が不適切な理由
・00111100:空いたビットに0を入れる論理シフトの結果です。正の数60になり、符号が失われています。
・11000000:左に2ビットシフトした結果です。
・10111100:全体を論理シフトした結果(00111100)の最上位ビットだけを1に戻した誤りです。算術シフトでは、空いた上位のビット全てに符号ビットと同じ値を入れます。

覚え方のポイント
「論理シフト=空いたビットに0」「算術右シフト=空いたビットに符号ビットをコピー」。負の数を割り算するときは算術シフトを使います。
問71-2

8ビットの 10110100 を、右に2ビット論理シフトした結果はどれか。最も適切なものを1つ選びなさい。

  • ①11010000
  • ②11101101
  • ③00101101
  • ④01011010
答えと解説を見る
正解 ③00101101
解説
論理シフトは、ビット列を単なるビットの並びとして扱うシフトで、右にずらして空いた上位のビットには0を入れます。
10110100 → 右に2ビット → 00101101
はみ出した下位の2ビット(00)は捨てられます。

他の選択肢が不適切な理由
・11101101:空いたビットに1(元の最上位ビット)を入れる、算術シフトの結果です。
・11010000:左に2ビット論理シフトした結果です。
・01011010:右に1ビットだけ論理シフトした結果です。

覚え方のポイント
シフトの問題は、まずビット列をずらし、次に空いたビットに何を入れるか(論理なら0、算術の右シフトなら符号ビット)を決める、の2段階で考えると間違えません。
問81-2

浮動小数点数の「正規化」の説明として、最も適切なものはどれか。

  • ①指数部が必ず正の値になるように、一定の値を加えておくこと
  • ②仮数部の最上位の桁が0以外になるように、指数部を調整すること
  • ③計算結果を、決められた桁数に収まるように四捨五入すること
  • ④2つの数値の指数部の値を、加算の前に同じ値にそろえておくこと
答えと解説を見る
正解 ②仮数部の最上位の桁が0以外になるように、指数部を調整すること
解説
浮動小数点数は「符号・指数部・仮数部」で数値を表します。同じ値でも 0.0125×102 や 1.25×100 のように複数の表し方ができるため、仮数部の最上位の桁が0以外になるように指数部を調整して、表し方を一つに決めます。これを正規化といい、限られた仮数部の桁数を最大限に使えるため、精度が高くなります。

他の選択肢が不適切な理由
・指数部が必ず正の値になるように一定の値を加える:ゲタばき表現(バイアス)の説明です。
・決められた桁数に収まるように四捨五入:丸めの説明です。
・加算の前に指数部の値をそろえる:浮動小数点数の加減算の手順の一部(桁合わせ)で、正規化ではありません。

覚え方のポイント
「正規化=仮数部の先頭のむだな0をなくす」。有効数字を最大限に使うための調整、と目的とセットで覚えましょう。
問91-2

IEEE 754で規定されている単精度(32ビット)の浮動小数点数の構成として、正しいものはどれか。

  • ①符号部1ビット、指数部8ビット、仮数部23ビット
  • ②符号部1ビット、指数部11ビット、仮数部20ビット
  • ③符号部1ビット、指数部7ビット、仮数部24ビット
  • ④符号部2ビット、指数部8ビット、仮数部22ビット
答えと解説を見る
正解 ①符号部1ビット、指数部8ビット、仮数部23ビット
解説
IEEE 754の単精度浮動小数点数は、32ビットを「符号部1ビット・指数部8ビット・仮数部23ビット」に分けて数値を表します。指数部はバイアス(127)を加えた値で表し、仮数部は正規化したときの先頭の1を省略して格納することで、実質24ビット分の精度を持ちます。倍精度(64ビット)は、符号部1ビット・指数部11ビット・仮数部52ビットです。

他の選択肢が不適切な理由
・指数部11ビット、仮数部20ビット:指数部11ビットは倍精度のものです。倍精度の仮数部は52ビットです。
・指数部7ビット、仮数部24ビット:IEEE 754の単精度の構成ではありません。
・符号部2ビット:符号部は正負を表す1ビットです。

覚え方のポイント
「単精度=1・8・23(計32)」「倍精度=1・11・52(計64)」。符号部は常に1ビットです。
問101-2

整数の計算で、計算結果がその型で表現できる最大値を超えてしまい、正しい値を表せなくなる現象はどれか。

  • ①アンダーフロー
  • ②丸め誤差
  • ③桁落ち
  • ④オーバーフロー
答えと解説を見る
正解 ④オーバーフロー
解説
オーバーフロー(桁あふれ)は、計算結果の絶対値が、そのデータ型で表現できる範囲の最大値を超えてしまう現象です。例えば、8ビットの2の補数表現で 127 に 1 を加えると、結果の 10000000 は −128 と解釈されてしまいます。

他の選択肢が不適切な理由
・アンダーフロー:浮動小数点数で、計算結果の絶対値が表現できる最小の値より小さくなり、正しく表せなくなる現象です。
・桁落ち:ほぼ等しい数値どうしの減算で、有効数字の桁数が減る誤差です。
・丸め誤差:決められた桁数に収めるための四捨五入・切捨てなどで生じる誤差です。

覚え方のポイント
「オーバー=大きすぎてあふれる」「アンダー=0に近すぎて表せない」。プログラムでは、オーバーフローが起きても気づきにくい不具合になるため、型の範囲を意識することが大切です。

基本情報技術者(科目A)の対策問題(全600問)に戻る

非公式の資格試験対策サイトです。独立行政法人情報処理推進機構(IPA)とは一切関係ありません。

※本ページでは、アクセス解析(Googleアナリティクス)と、広告の配信・成果の計測(A8.net)のためにCookie等を利用し、閲覧に関する情報をGoogle LLC・株式会社ファンコミュニケーションズへ送信しています。詳しくはプライバシーポリシーをご覧ください。

※本ページの問題・解説は、生成AI(人工知能)を活用して作成しています。

【PR】