基本的な知識を復習しつつAP対策するシリーズ。
この記事ではn進数についてまとめます。
m桁のn進数は何通りの数を表せるか
m桁のn進数が表せる数は通りです。
例えば、6桁の2進数は64通り、2桁の16進数は256通りです。
白のカラーコードはFFFFFFですが、これはRGBの各値を2桁の16進数(256段階)で表しているためです。
基数変換 n進数 -> 10進数
次にn進数を10進数に変換します。
n進数のnを基数と呼ぶのでこの変換は基数変換と呼ばれます。
n進数から10進数への基数変換を行うには、まず桁の重みを求めます。
基数 | … | 4桁目 | 3桁目 | 2桁目 | 1桁目 | 小数1桁目 | 小数2桁目 | 小数3桁目 | … |
---|---|---|---|---|---|---|---|---|---|
2進数 | … | 8 | 4 | 2 | 1 | 1/2 | 1/4 | 1/8 | … |
8進数 | … | 512 | 64 | 8 | 1 | 1/8 | 1/64 | 1/512 | … |
16進数 | … | 4096 | 256 | 16 | 1 | 1/64 | 1/256 | 1/4096 | … |
n進数 | … | … |
そして各桁の値にその桁の重みを掛けた値を全て足し合わせます。
例えば1001.01という2進数であれば下記のようになります。
基数変換 10進数 -> n進数
次に10進数をn進数に基数変換します。
10進数からの基数変換は、整数部分と少数部分を分けて処理します。
まず整数部分については、10進数の値を変換後の基数で再帰的に割り、商と余りを求めていきます。
123という10進数を2進数に変換する場合はこんな感じです。
そしてこの余りを下から順に並べたものが2進数表記です。
つまり10進数123の2進数表記は1111011となります。
次に少数部分について考えます。
少数部分を変換するには、まず元の数と変換後の基数を掛け合わせます。
そして得られた数の少数部分と変換後の基数をまた掛け合わせます。
これを、計算結果の少数部分が0になるまで繰り返します。
例えば10進数0.625について処理すると次のようになります。
あとは計算結果の整数部分を上から順に並べるだけです。
よって、10進数0.625を2進数に変換すると0.101となります。
整数と組み合わせると、10進数123.625を2進数に変換すると1111011.101となります。
BCDとは?
BCD(Binary Coded Decimal / 2進化10進数)とは、10進数の値を4桁の2進数で表す方法です。
例えば10進数の0はBCDで0000、1は0001、9は1001と表されます。
これを使用する目的は以下の通りです。
コンピュータでは1と0の2進数が用いられているが、人間がその計算結果を見て理解したり、元となるデータを入力したりすることは困難である。そのため、人間に理解しやすいように、10進数と2進数の中間的な表現方法が取り入れられた。それがBCDである
BCD | 用語集 | KDDI株式会社 より
練習問題
- 16進数2F.Aを8進数に変換せよ
過去問
参考
過去問は下記のサイトのものを使わせていただいております。
www.ap-siken.com