事前知識
コンピュータでは、データをバイナリ(2進数)で表現します。
バイナリは、0と1の2つの数字(ビット)を使用して、数値やデータを表現します。
※これらのビットは、コンピューター内部の電気回路におけるオン(1)とオフ(0)の状態を表しています。
0と1の2つの数字(ビット)を使い、各桁は2のべき乗に基づいています。
例えば、10進数の5はバイナリで101になります。※(1 × 2^2) + (0 × 2^1) + (1 × 2^0) = 4 + 0 + 1 = 5
この記事では、ビット数が異なる場合に、1から20までの整数をどのようにバイナリで表現するかを示し、ビット数と表現範囲の関係について説明します。
バイナリ(2進数)での整数表現
以下の表は、1ビットから5ビットまでのバイナリで、1から20までの整数(10進数) を表現したものです。
※ただし、1~4ビットでは、1から20までの整数をすべて表現できない。
整数(10進数) | 1ビット | 2ビット | 3ビット | 4ビット | 5ビット |
---|---|---|---|---|---|
0 | 0 | 00 | 000 | 0000 | 00000 |
1 | 1 | 01 | 001 | 0001 | 00001 |
2 | - | 10 | 010 | 0010 | 00010 |
3 | - | 11 | 011 | 0011 | 00011 |
4 | - | - | 100 | 0100 | 00100 |
5 | - | - | 101 | 0101 | 00101 |
6 | - | - | 110 | 0110 | 00110 |
7 | - | - | 111 | 0111 | 00111 |
8 | - | - | - | 1000 | 01000 |
9 | - | - | - | 1001 | 01001 |
10 | - | - | - | 1010 | 01010 |
11 | - | - | - | 1011 | 01011 |
12 | - | - | - | 1100 | 01100 |
13 | - | - | - | 1101 | 01101 |
14 | - | - | - | 1110 | 01110 |
15 | - | - | - | 1111 | 01111 |
16 | - | - | - | - | 10000 |
17 | - | - | - | - | 10001 |
18 | - | - | - | - | 10010 |
19 | - | - | - | - | 10011 |
20 | - | - | - | - | 10100 |
... | ... | ... | ... | ... | ... |
ビット数と範囲の関係
ビット数が増えると、表現できる整数の範囲が広がります。
nビットのバイナリで表現できる整数の範囲は、0から(2^n)-1までです。
例えば、3ビットの場合は0から7まで、4ビットの場合は0から15まで、5ビットの場合は0から31までの整数を表現できます。
この関係性を理解することは、データ型やメモリ管理において重要です。
例えば、データベースで整数を格納する場合、適切なビット数を選択することが、データの範囲を正確に表現し、メモリ使用効率を向上させるために重要です。
バイナリと他の数値システムとの関係
コンピューターは、バイナリ以外の数値システムも使用します。以下は、よく使われるものです。
1. 8進数(オクタル)
基数が8で、0から7の数字を使います。バイナリを3桁ずつグループ化して変換できます。
2. 16進数(ヘキサデシマル)
基数が16で、0から9の数字とAからFのアルファベットを使います。バイナリを4桁ずつグループ化して変換できます。
バイナリの応用
バイナリ表現は、コンピューターにおいて多くのデータ形式やプロセスで使用されます。例えば:
1. データの保存と転送
テキスト、画像、音声などのデータは、バイナリ形式で保存・転送されます。
2. 論理演算
コンピューターは、ビット演算(AND、OR、NOT、XORなど)を使用して論理演算を行います。
3. エンコーディング
文字や記号は、ASCIIやUnicodeといったエンコーディング規格を使用してバイナリで表現されます。
バイナリは、データの保存・転送や論理演算、文字・記号のエンコーディングなど、コンピューター科学と情報技術の基礎となる概念です。