🎯 この記事を読み終わるころには、この問題が解けるようになります!
【例題】平成31年度 基本情報技術者試験 科目A
10進数の演算式 7 ÷ 32 の結果を2進数で表したものはどれか。
ア. 0.001011 イ. 0.001101
ウ. 0.00111 エ. 0.0111
※ 今は解けなくて大丈夫です!この記事を最後まで読んでから、もう一度チャレンジしてみてください 💪
IT初心者でも大丈夫!コンピュータが「0と1しか使わない」理由から、試験頻出の基数変換まで、日常生活の例えで丁寧に解説します。この記事を読めば、上記の問題が解けるようになります!
目次
- コンピュータはなぜ「0と1」しか使わないの?
- ビットとバイト|データの最小単位を理解しよう
- データの単位(キロ・メガ・ギガ)早見表
- 10進数・2進数・16進数の違いを徹底解説
- 基数変換の方法(桁の重みと計算手順)
- 有限小数と無限小数|試験で狙われるポイント
- 負の2進数|補数表現をマスターしよう
- シフト演算|2進数の掛け算・割り算
- 過去問チャレンジ!
- この章のまとめ
1. コンピュータはなぜ「0と1」しか使わないの?
コンピュータは、内部ではとてもシンプルな仕組みで動いています。それは「電気のONとOFF」です。部屋の照明のスイッチを想像してみてください。スイッチを入れると電気が点き(ON)、切ると消えます(OFF)。
▲ 電球のON(1)とOFF(0)がビットの基本概念です
コンピュータもこれと同じで、電気が通っている状態を「1」、通っていない状態を「0」として情報を処理しています。この「0」と「1」の2つの数字だけで情報を表す方法を2進数と呼びます。私たちが普段使っている文字や画像、動画も、コンピュータの中ではすべてこの「0と1」の組み合わせに変換されているのです。
2. ビットとバイト|データの最小単位を理解しよう
コンピュータが扱うデータの最小単位をビット(bit)と呼びます。1ビットは「0」か「1」のどちらか1つの状態を表すことができます。
そして、このビットを8個集めたものをバイト(byte)と呼びます。1バイト = 8ビットです。ビットがいくつ集まるかで、表現できる情報(状態の数)が「2のn乗」通りに増えていきます。
▲ 1ビット×8個=1バイト。箱が8つ並んで0か1を格納するイメージです
| ビット数 | 計算式 | 表せる状態の数 |
|---|---|---|
| 1ビット | 21 | 2通り(0, 1) |
| 2ビット | 22 | 4通り(00, 01, 10, 11) |
| 3ビット | 23 | 8通り |
| 8ビット(1バイト) | 28 | 256通り |
このように、「0」と「1」が並んだデータのことをビット列やビットパターンと呼びます。
📝 ポイント:暗記必須!
「1バイト=8ビット」「1バイトで表せるのは256通り」という数字は、試験でよく使うので必ず覚えておきましょう!
3. データの単位(キロ・メガ・ギガ)早見表
データが大きくなると、ビットやバイトだけでは桁数が多すぎて扱いにくくなります。そこで、日常生活でもおなじみの「キロ」や「メガ」といった単位を使います。
▲ バイトからテラバイトまで、右に行くほど1000倍ずつ大きくなります
| 単位 | 記号 | 大きさ(10進数表記) |
|---|---|---|
| キロ | k | 1,000(103) |
| メガ | M | 1,000,000(106) |
| ギガ | G | 1,000,000,000(109) |
| テラ | T | 1,000,000,000,000(1012) |
小さい単位として、ミリ(m:10-3)、マイクロ(μ:10-6)、ナノ(n:10-9)などもあります。
例えば、スマホの通信容量などでよく見る「1GB(ギガバイト)」は、約10億バイトのことです。これをビットに直すと、1バイト=8ビットなので約80億ビットになります!
試験情報 今後の出題傾向
基本情報技術者試験(IPA)では、今後数学や計算問題の出題比率を高くする方針が発表されています。単位の換算はしっかりマスターしておきましょう。
4. 10進数・2進数・16進数の違いを徹底解説
私たちが普段の生活で使っているのは、0〜9までの10個の数字を使う10進数です。一方でコンピュータは2進数を使い、さらにプログラムの世界では人間が少し読みやすくするために16進数もよく使われます。
▲ 同じ「数」を3つの進数で表したもの。表記は違っても表している値は同じです
| 10進数 | 2進数 | 16進数 |
|---|---|---|
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 2 | 10 | 2 |
| ... | ... | ... |
| 9 | 1001 | 9 |
| 10 | 1010 | A |
| 11 | 1011 | B |
| 15 | 1111 | F |
| 16 | 10000 | 10 |
進数の考え方は、時計(60秒で1分に繰り上がる=60進数)やカレンダー(12ヶ月で1年に繰り上がる=12進数)と同じです。
- 2進数: 2になると桁上がりします。だから「1+1=2」ではなく、「1+1=10(いちぜろ)」になります。
- 16進数: 16で桁上がりします。数字は0〜9までしかないので、10〜15はアルファベットの「A〜F」を使って表します。
⚠️ 注意:読み方と意味の違い
2進数の「10」は「じゅう」ではなく「いちぜろ」と読みます。10進数の「10」とは全く価値が違う(10進数の2と同じ)ため、混同しないようにしましょう。
5. 基数変換の方法(桁の重みと計算手順)
ある進数から別の進数へ表記を変換することを基数変換と呼びます。変換の基本となるのが「桁の重み」です。シーソーの中心から遠いほど力が大きくなるように、数字も左に行くほど価値(重み)が大きくなります。
2進数から10進数への変換
2進数の各桁に「桁の重み(2の累乗)」を掛けて、すべて足し合わせます。
例:2進数の 1001.001 を10進数にする場合
= 8 + 0 + 0 + 1 + 0 + 0 + 0.125
= 9.125
10進数から2進数への変換
整数部と小数部を分けて計算します。
【整数部】2で割り続け、余りを下から順に並べます。
【小数部】2を掛け続け、整数部分を上から順に並べます。
例:10進数の 4.625 の場合
- 4 ÷ 2 = 2 余り 0
- 2 ÷ 2 = 1 余り 0
- 1 ÷ 2 = 0 余り 1 → 整数部は
100 - 0.625 × 2 = 1.25 (整数部 1)
- 0.25 × 2 = 0.5 (整数部 0)
- 0.5 × 2 = 1.0 (整数部 1) → 小数部は
.101
結果は 100.101 となります。
💡 試験アドバイス
基数変換の計算は時間がかかることがあります。全60問中数問しか出ないため、本番で計算に詰まったら一旦後回しにするのも賢い作戦です!
6. 有限小数と無限小数|試験で狙われるポイント
小数には、桁がどこかで終わる「有限小数」と、永遠に続く「無限小数」があります。無限小数の中でも、同じ数字のパターンを繰り返すものを「循環小数」と呼びます。
試験頻出 10進数でキリの良い「0.1」のような数字でも、2進数に変換しようとすると無限小数(循環小数)になってしまうことがあります。これは試験で非常によく狙われるポイントです。
📝 ポイント:計算の打ち切り
小数部に2を掛けていく計算の途中で、以前出たのと同じ小数が現れたら「循環小数(無限小数)」だと判断して計算をストップしてOKです。
7. 負の2進数|補数表現をマスターしよう
コンピュータは「-(マイナス)」という記号を直接保存できません。そのため、2進数で負の数を表現するために工夫が必要です。
最もよく使われるのが2の補数表現です。以下の手順で求めます。
- すべてのビットを反転させる(0を1に、1を0にする)=1の補数表現
- その結果に「1」を足す=2の補数表現
※先頭の1ビットはプラスマイナスを表す「符号ビット」として扱われます(0なら正、1なら負)。
| 表現方法 | 10進数「2」 | 10進数「-2」 |
|---|---|---|
| 絶対値表現 | 00000010 | 10000010 |
| 1の補数表現 | 00000010 | 11111101 |
| 2の補数表現 | 00000010 | 11111110 |
8. シフト演算|2進数の掛け算・割り算
2進数のまま手っ取り早く掛け算や割り算を行うテクニックがシフト演算です。ビット列を左右にずらす(シフトする)だけで計算ができます。
▲ ビット列を右に5つずらすだけで「÷32」ができます。これがシフト演算の威力です!
論理シフト(符号を考えない場合)
- 左に1つずらす(空いた右端には0を入れる) → 値は2倍になる
- 右に1つずらす(空いた左端には0を入れる) → 値は1/2倍になる
| 操作 | 計算結果の意味 |
|---|---|
| nビット左シフト | 元の数の 2n 倍 |
| nビット右シフト | 元の数の 1/2n 倍 |
※正負(マイナス)を考慮する場合は「算術シフト」を使いますが、基本情報技術者試験では「論理シフト」の出題が圧倒的に多いです。
また、シフト演算と足し算を組み合わせることで、「9倍」や「10倍」を作る問題も出題されます。(例:xを3ビット左シフトして8倍にし、そこに元のxを足すと9倍になる)。
9. 過去問チャレンジ!
🎯 記事冒頭の例題に、もう一度チャレンジ!
【例題・再掲】平成31年度 基本情報技術者試験 科目A
10進数の演算式 7 ÷ 32 の結果を2進数で表したものはどれか。
ア. 0.001011 イ. 0.001101
ウ. 0.00111 エ. 0.0111
記事を読んだ今なら解けるはず!まず自分で考えてから、下の解説を確認してみましょう 👇
✅ 解答・完全解説
正解:ウ(0.00111)
この問題は2つの解き方があります。どちらも習得しておくと完璧です!
【方法① 基数変換で解く(丁寧な解き方)】
まず 7 ÷ 32 = 0.21875 を計算します。
次に、この小数部分を2進数に変換するため、2を掛け続けて整数部分を取り出します。
0.4375 × 2 = 0.875 → 整数部:0
0.875 × 2 = 1.75 → 整数部:1
0.75 × 2 = 1.5 → 整数部:1
0.5 × 2 = 1.0 → 整数部:1(小数部が0になったので終了)
取り出した整数部を上から順に並べると → 0.00111 ✅
【方法② シフト演算で解く(素早い解き方・おすすめ!)】
10進数の「7」は2進数で 111 です。
「÷32」は「÷25」と同じ意味なので、右へ5ビットシフトすればOKです。
0 0 0 1 1 1 →(右に5シフト)→ 0 . 0 0 1 1 1
↑ここに小数点が来る
▲ ビット列を右に5つずらすだけで答えが出る!シフト演算は試験の時短テクニックです
結果は 0.00111 なので、答えは ウ です。
【過去問 その2】平成28年度 春期
32ビットで表現できるビットパターンの個数は、24ビットで表現できる個数の何倍か。
ア. 8 イ. 16 ウ. 128 エ. 256
💡 解答・解説
正解:エ
nビットで表現できる個数は「2n」です。
32ビット:232、24ビット:224
232 ÷ 224 = 2(32-24) = 28 = 256倍となります。
【過去問】平成28年度 春期
32ビットで表現できるビットパターンの個数は、24ビットで表現できる個数の何倍か。
ア. 8 イ. 16 ウ. 128 エ. 256
💡 解答・解説
正解:エ
nビットで表現できる個数は「2n」です。
32ビット:232
24ビット:224
232 ÷ 224 = 2(32-24) = 28 = 256倍となります。
10. この章のまとめ
📌 基礎理論①のまとめ
- 1バイト = 8ビット(256通りの状態を表せる)
- データの単位:K(キロ)=103、M(メガ)=106、G(ギガ)=109
- 10進数小数を2進数にすると「無限小数(循環小数)」になることが多い
- 負の数の表現は「2の補数表現(ビット反転+1)」が主流
- 左にnビットシフト = 2n 倍、右にnビットシフト = 1/2n 倍
学習難易度:★★★☆☆
計算が苦手な人へ:最初のうちは基数変換で頭が痛くなるかもしれませんが、慣れればパズルのように解けるようになります。どうしても難しければ、ここは一旦飛ばして次へ進むのも立派な戦略です!
この記事について
基本情報技術者試験の合格を目指す方のために、参考書の内容を初心者向けにわかりやすく噛み砕いて解説しています。ITの基礎をしっかり固めて、一緒に合格を目指しましょう!
