2進数とは?にしんすう
2進数は基数2の位取り記数法で、各桁の重みが2のべき乗になる。応用情報で問われるのは変換そのものより、その上に積む表現形式と演算である。負数は2の補数(ビット反転して1を加える)で表し、これによって減算を加算回路だけで実行でき、nビットの表現範囲は−2^(n−1)〜2^(n−1)−1と非対称になる。左シフトは2倍、右シフトは1/2に対応し、算術シフトは符号ビットを保つ点が論理シフトと異なる。16進数は4ビットをちょうど1桁に対応させるため、ビット列の可読な表記として使われる(MACアドレスやサブネットマスクを16進で読むのはこのため)。浮動小数点数では仮数部が有限桁の2進小数であることから、0.1のような10進の有限小数が循環小数になり誤差が生じる。
最終更新:2026-10-06
この語が出る過去問を解く →背景
2進数を扱うのは表記の都合ではなく、回路を減らすためである。減算専用の回路を持たずに済ませたいという要求から2の補数が生まれ、ビット反転と加算だけで引き算が実現できるようになった(同時に+0と−0が分かれる問題も消える)。16進数も同じ発想で、4ビットを1桁に対応させると人が読めてビット境界も崩れないという妥協点である。浮動小数点数の誤差も、有限桁の2進小数で10進小数を表そうとする構造上の帰結であって実装の不備ではない。応用情報でこの分野が問われるのは、ダンプの読み取りや金額計算の不具合切り分けが、この表現形式の理解に直結するためである。
具体例
障害調査でメモリダンプを読むとき、16進の0x8000が16ビット符号付きとして−32768であることが即座に読めるかどうかで切り分けの速さが変わる。またループカウンタで金額を0.1ずつ加算した合計が期待値と一致しない不具合は、実装ミスではなく2進小数で0.1が正確に表せないことが原因で、この場合の対処はコードの修正ではなく整数(銭単位)または10進固定小数点型への変更になる。
試験での引っ掛け
2の補数の表現範囲が非対称である点(8ビットなら−128〜+127で、+128は表せない)と、最上位ビットを符号として使うため「1000 0000」が−128であって−0ではない点を落としやすい。算術右シフトと論理右シフトの取り違えも定番で、負数を2で割る意図なら算術シフトでなければならない。オーバーフローは、符号が同じ2数を加えて符号が変わったときに起きる、と条件で覚える。記述式では「なぜ2の補数を使うのか」を、減算を加算器で実現できる/0の表現が一つになる、のどちらかで30〜50字に言い切れるようにしておく。
関連用語
出た過去問
問題文で直接問われたものと、解説の中で触れられたものが含まれます。
出典:平成31年度 春期 応用情報技術者試験 午前 問1(IPA)
0以上255以下の整数nに対して、 next(n) = n+1 (0≦n<255)、0 (n=255) と定義する。next(n)と等しい式はどれか。ここで、x…
正解:(n+1) AND 255
要点:AND 255は下位8ビットのマスクで、256を0に折り返す
255は2進数で8ビット全てが1なので、AND 255は下位8ビットだけを残すマスクとして働く。n が0以上254以下なら n+1 は255以下に収まりマスクしても値は変わらず、n=255のときだけ n+1=256(2進数で1 0000 0000)となり、下位8ビットが全て0になるため結果は0になる。つまり255の次に0へ戻る循環がAND 255だけで表現できる。
出典:平成31年度 春期 応用情報技術者試験 午前 問34(IPA)解説で登場
次のIPアドレスとサブネットマスクをもつPCがある。このPCのネットワークアドレスとして、適切なものはどれか。 IPアドレス: 10.170.70.19 サブネ…
正解:10.170.70.16
要点:ネットワークアドレスはIPアドレスとサブネットマスクの論理積
サブネットマスク255.255.255.240は上位28ビットがネットワーク部で、第4オクテットの上位4ビットだけが有効である。19は2進数で0001 0011なので、下位4ビットを0にすると0001 0000=16となり、ネットワークアドレスは10.170.70.16になる。
出典:令和3年度 秋期 応用情報技術者試験 午前 問22(IPA)
1桁の2進数A, Bを加算し、Xに桁上がり、Yに桁上げなしの和(和の1桁目)が得られる論理回路はどれか。
正解:AとBをAND素子に入力してX、AとBをXOR素子に入力してYを得る回路
要点:半加算器は桁上げがAND、和がXORで構成される
1桁の2進数どうしの加算は半加算器で実現でき、桁上げ(キャリー)はAとBの論理積、桁上げなしの和は排他的論理和で得られる。A=B=1のときだけ桁上げが1になり、AとBが異なるときだけ和が1になることを真理値表で確かめられる。したがってXにAND、YにXORを割り当てた回路が正解となる。
出典:令和4年度 秋期 応用情報技術者試験 午前 問1(IPA)
aを正の整数とし、b=a^2とする。aを2進数で表現するとnビットであるとき、bを2進数で表現すると最大で何ビットになるか。
正解:2n
要点:2乗するとビット数は最大で2倍になる
nビットで表せる正の整数aの最大値は 2^n − 1 なので、b = a^2 ≦ (2^n − 1)^2 < 2^(2n) となり、bは2n桁(2nビット)を超えません。実際 a = 2^n − 1 のとき b = 2^(2n) − 2^(n+1) + 1 で、これは 2^(2n−1) 以上なのでちょうど2nビットになります。したがって最大で2nビットです。
出典・参考
公式シラバスの1 基礎理論 > 1. 離散数学 > (1) 基数に掲載されている用語です。
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。