ITエンジニアの登竜門ともいわれる基本情報技術者試験。この試験で、ほぼ確実に出題される分野のひとつが基数変換です。
「0と1ばかりで目が回る」「AとかFとか、数字じゃないものが出てきてパニックになる」。そんな苦手意識を持っている方も多いのではないでしょうか。
ですが、基数変換は数学というより、パズルや翻訳に近い分野です。仕組みさえ理解できれば、必要以上に怖がる必要はありません。
この記事では、基数変換でつまずかないための根本的な考え方と、効率よくマスターするための勉強のコツを、初学者向けに解説します。
「基数」を学ぶときの考え方
なぜこんなに種類があるの?
まずは、なぜわざわざ2進数、8進数、16進数といった複数の「基数」を使い分けるのか、その理由から押さえておきましょう。
2進数(基数が2):コンピュータの言葉
コンピュータは、「スイッチのON/OFF」、つまり0か1しか理解できません。この0と1だけで表現する仕組みが、2進数です。すべての処理は、ここが出発点になっています。
8進数・16進数:人間のための省略形
一方で、2進数は人間にとって非常に読みにくいという欠点があります。たとえば「111101011100」のような数字を正確に読み取るのは、なかなか大変ですよね。
そこで登場するのが8進数と16進数です。2進数を3桁ずつまとめたものが8進数、4桁ずつまとめたものが16進数です。
つまり、コンピュータの都合(2進数)を人間にわかりやすく翻訳した表現だと考えると、少しハードルが下がりませんか?
基数変換をマスターする勉強のコツ
基数変換は、暗記ではなく「手順のパターン化」が重要です。以下の3つのコツを意識してみてください。
① 「数字列」を必ず書き出す
2進数の計算をするときは、紙の余白に必ず次の数字を書きましょう。
1, 2, 4, 8, 16, 32, 64, 128…
これが各桁の「重み」です。この数字を書いておくだけで、桁を見失いにくくなり、暗算ミスも防げます。結果として、計算ミスは劇的に減ります。
② 8進数・16進数は「グループ化」で解く
8進数や16進数を扱うとき、いちいち10進数に戻して計算するのは時間の無駄です。
8進数(基数8)にする場合は、2進数を右から3桁ずつ区切ります。これは 2³=8 だからです。
16進数(基数16)にする場合は、2進数を右から4桁ずつ区切ります。これは 2⁴=16 だからです。
この「右から区切る」というルールを徹底するだけで、多くのミスを防げます。
③ 「A=10」だけを叩き込む
16進数で一番混乱しやすいのが、アルファベット(A〜F)の扱いです。ここで覚えるべきことは、実はひとつだけです。
Aは10。
これさえ押さえておけば、B=11、C=12…と指を折って数えるだけで対応できます。慣れてくれば、自然と「Fは15」までセットで覚えられるようになります。
初学者がつまずく3つの罠とその対策
多くの人がハマるポイントは、実は共通しています。ここを意識するだけで、無駄な失点をかなり防げます。
罠① 「0乗」の勘違い
どんな数字でも0乗は1です。つまり、基数が何であっても一番右の桁は必ず「1の位」になります。0の位から始めてしまうミスが非常に多いので注意しましょう。
罠② 割り算の余りを上から書いてしまう
10進数を2進数に変換するときの「割り算」。このとき、出てきた余りは必ず下から上へ読み取ります。ここを逆にしてしまうと、手順が合っていても答えがズレてしまいます。
罠③ 8進数と16進数の区切り間違い
問題を解くときは、「今は3桁区切り(8進数)なのか、それとも4桁区切り(16進数)なのか」を常に確認してください。ここが混ざると、やり方は合っていても答えだけが間違ってしまいます。
【実践】基数変換10本ノック!
仕組みが理解できたら、次は手を動かす番です。以下の例題で、実際に解けるか試してみましょう。
Q1: 10進数の18を2進数に直しなさい。
A1: 10010
解説: 18の中には「重み」の16と2が含まれます。16+2と考えれば、すぐに解けます。
Q2: 10進数の75を2進数に直しなさい。
A2: 1001011
解説: 64+8+2+1=75です。すだれ算で解く場合は、余りを必ず下から読み取りましょう。
Q3: 2進数の10110を10進数に直しなさい。
A3: 22
解説: 右から重みを当てはめます。16(1)+8(0)+4(1)+2(1)+1(0)となるので、16+4+2=22です。
Q4: 2進数の11001011を10進数に直しなさい。
A4: 203
解説: 128+64+8+2+1を合計します。桁が多いときは、重みを紙にメモするとミスを防げます。
Q5: 2進数の110111を8進数に直しなさい。
A5: 67
解説: 右から3桁ずつ区切ります。「110」と「111」に分かれるので、それぞれを変換して6と7になります。
Q6: 2進数の10111101を16進数に直しなさい。
A6: BD
解説: 右から4桁ずつ区切ります。「1011(11=B)」と「1101(13=D)」になるため、答えはBDです。
Q7: 16進数のA3を2進数に直しなさい。
A7: 10100011
解説: 1文字ずつ4桁の2進数に直します。A(10)は1010、3は0011です。
Q8: 8進数の62を2進数に直しなさい。
A8: 110010
解説: 1文字ずつ3桁の2進数に直します。6は110、2は010です。
Q9: 10進数の255を16進数に直しなさい。
A9: FF
解説: 255は2進数で11111111です。4桁ずつ区切ると1111が2つ並び、それぞれFになります。
Q10: 16進数の1Eを10進数に直しなさい。
A10: 30
解説: 左側の1は16の位、右側のEは1の位です。16×1+14(E)=30と計算します。
まとめ:基数変換は「慣れ」がすべて
基数変換は、一度コツを掴んでしまえば一生使えるスキルになります。まずは「数字列」を書くこと、グループで区切ることを意識して、例題を繰り返してみてください。
この分野を乗り越えられると、論理回路や符号付き2進数もぐっと楽になります。基数変換は、エンジニアとしての基礎体力づくりです。焦らず、確実に慣れていきましょう。

コメント