基礎科目・情報・アルゴリズム
基数変換と補数
9問H25・H27・H28・H30・R1・R2・R4・R6
10進数と2進数・16進数の行き来(小数を含む)と、2の補数・1の補数の計算が出ます。
よく出る形
- 10進数の小数(0.6,0.1,0.85 など)を2進数に直す
- 2進数を上の桁から「2倍して次の桁を足す」流れ図で10進数に直し,途中の値を答える
- 10進数を2進数・16進数で表す。2進数の「2の補数」「1の補数」を求める
- 小数の2進化・補数・流れ図・10進から2進・16進への変換が,年ごとに入れ替わる。同じ型どうしは数字だけが替わる
覚えること
- 2進数の桁の重み:整数部は右から 1,2,4,8,16 …,小数部は 1/2,1/4,1/8,1/16 …
- 16進数は 0〜9 と A(10)〜F(15) を使う。2進数4桁が16進数1桁,2進数3桁が8進数1桁に対応する
- 整数を2進数にするには「2で割って余りを下から並べる」,小数は「2を掛けて整数部分を上から並べる」
- 0.1 や 0.6 は2進数では割り切れず,同じ並びがくり返す循環小数になる
- k桁の2進数 X の「2の補数」は 2k−X,「1の補数」は (2k−1)−X
- 1の補数は各桁の0と1を入れかえるだけ。2の補数はそれに1を足したもの
- 8ビットの2の補数表現:いちばん左のビットが1なら負の数。負の数 −x は 256−x で表し,表せる範囲は −128〜127
- 2進数から8進数・16進数へは,小数点を基準に「整数部分は右から,小数部分は左から」3桁・4桁ずつ区切る(足りない所は0で埋める)
解き方
- 小数の変換は,×2 して出た整数部分(0か1)を順に書き,残りの小数でくり返す
- 例:0.6 → 0.6×2=1.2(1)→ 0.2×2=0.4(0)→ 0.4×2=0.8(0)→ 0.8×2=1.6(1)→ 0.6 に戻るので 0.1001 1001 …
- 2進数→10進数の流れ図は,最初に s=いちばん上の桁,あとは s←s×2+次の桁 をくり返す
例:(1101)2 は 1 → 1×2+1=3 → 3×2+0=6 → 6×2+1=13
- 補数の例:(100110)2=38,6桁なので2の補数は 64−38=26=(011010)2,1の補数は 63−38=25=(011001)2
- 補数から元の数へは,そのまま10進数にした値 N を使って x=256−N(8ビットの場合)。または0と1を入れかえて1を足す
- 答えが出たら,桁の重みを足して10進数に戻し,元の数と合うか確かめる
ひっかけ
- 2の補数と1の補数を入れかえない。2の補数のほうが1大きい
- 流れ図で「0の桁」は2倍だけにする。0の桁で+1 をしない
- 1を足し忘れた値(1の補数のまま)や,ビット列をそのまま10進数にした値(214 など)がまぎれている
- 2進数を8進数にするとき,3桁の区切りは小数点から。左端から区切らない
このテーマの過去問(このサイトに解説がある 5問)
- 令和6年度10進数0.6を2進数に変換基礎科目 I-2-1解説を読む
- 令和4年度2進数を10進数に変換基礎科目 I-2-5解説を読む
- 令和2年度2進数を10進数に直すアルゴリズム基礎科目 I-2-5解説を読む
- 令和2年度2進数の補数(2の補数・1の補数)基礎科目 I-2-4解説を読む
- 令和元年度10進数の2進数・16進数への変換基礎科目 I-2-1解説を読む
平成に出た同じテーマ(4問)
このサイトにはまだ解説がありません。年度と題だけです。
- 平成30年度2進数の補数
- 平成28年度2進数変換の流れ図
- 平成27年度10分の1の2進数表現
- 平成25年度基数変換(10進と2進)