DE-C02|情報Ⅰ 対策問題
ASCIIコード(Aは10進で65)のもとで、2進法「01000011」が表す文字はどれか。
解答・解説を見る
正解: 1
正答
1
この問題のポイント
2進→10進→文字の3段変換 を問う問題です。ビット列を数値に直し、コード表で文字に対応させる連鎖を身につけます。
解説
コンピュータの中で文字は、文字コードという番号の2進表現として保存されています。したがって「ビット列→10進の数値→コード表で文字」という3段の変換ができれば、どんなビット列も文字として読めます。
手順どおり計算します。
- 2進数の各桁の重みは右から 1、2、4、8、16、32、64、128。
- 01000011 で「1」が立つのは、重み64・重み2・重み1の3か所。
- 64 + 2 + 1 = 67(10進)。
- A=65、B=66、C=67 なので、答えは「C」。
関連知識として、小文字は「大文字+32」の関係にあります(c = 67+32 = 99 = 01100011)。2進で見ると、32の位のビットが0か1かの違いだけで大文字と小文字が切り替わる、という設計になっています。大文字・小文字の変換が問われたら「±32」を思い出しましょう。
共通テストでは、2進・16進・10進の変換とコード表の読み取りが組み合わさって出題されます。重みの表(128、64、32、16、8、4、2、1)を素早く書き出し、1の立つ桁だけ足す、という手順を体に覚えさせてください。
選択肢の確認
1.○ 01000011 = 64+2+1 = 67 = C。
2.× Bは66(01000010)。右端の1を読み落とすとこの値になる。
3.× Gは71(01000111)。ビットの読み間違い。
4.× 小文字cは99(01100011)。32の位のビットが立っている場合。
ここだけは覚えよう
ビット列→10進→コード表の3段変換。C=67 — 小文字=大文字+32(32の位のビット1つの違い)。