デジタル回路 回路 数の表現 高専2年生

【数の表現①】2進数

コンピュータの演算には0と1からなる2進数が使われています。これによりシンプルな回路構成ながらきわめて信頼性の高い装置を実現する事が出来ます。我々の生活やC言語など人間が触れるプログラミング言語では主に10進数が用いられており、このため人間がコンピュータを扱うさいには2進数と10進数の変換が必要となります。本章ではその手法について学んでいきます。

2進数と10進数

  • 10進数

まず、10進数から考えてみましょう。これは私たちが日常的に使っている数字の表現方法です。0から9までの数字を使って、それ以上の数字を表現するときには桁を上げます。たとえば、9の次は10です。

1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ...

このシステムでは、0から9までの10種類の数字を使用します。各桁の位置は10の累乗で表されます。例えば、数字「235」は、

2 \times 10^2 + 3 \times 10^1 + 5 \times 10^0

として理解されます。

  • 2進数

2進数は名前の通り、「2つ」の数字、0と1だけを使って数を表現します。これは主にコンピュータ内部での情報の扱いに用いられます。

2進数で数を数えると、こんな感じになります

0, 1, 10, 11, 100, 101, ...

各桁の位置は2の累乗で表されます。例えば、2進数の「101」は、

1 \times 2^2 + 0 \times 2^1 + 1 \times 2^0

として、表され、10進数の「5」と等しい値を持ちます。

2進数と10進数の表現を明確に表す為,

00101_{(2)} = 5_{(10)}

と書くことがあります。

bitと基数

  1. bit(ビット):
    • ビットは、binary digit(バイナリーディジット)の略です。
    • 2つの状態(通常は0または1)のいずれかを示す最小のデータ単位です。
    • コンピュータのメモリやデータは、基本的にビットの組み合わせとして表されます。たとえば、8ビットは1バイトを構成します。
    • ビットはコンピュータの基本的な操作(例: AND, OR, NOTなどの論理演算)で使用されるため、コンピュータの中心的な存在です。
  2. 基数(または進数):
    • 基数は、数を表現するときの「基本」となる数のことです。
    • たとえば、我々が普段使っている10進法は基数10を持つシステムです。これは、0から9までの10個の数字を使用することを意味します。
    • コンピュータは2進法を用いてデータを処理します。これは基数2のシステムで、0と1の2つの数字だけを使用します。
    • 他にも、8進法(基数8)、16進法(基数16、数字0-9とA-Fを使用)などのシステムが存在します。

ここで、5bitの2進数で表すことが出来る最大値を考えます。

最大の5bitの2進数の表現は11111です。

これを10進数に変換すると

    \begin{align*} (2^4 \times 1) + (2^3 \times 1) + (2^2 \times 1) + (2^1 \times 1) + (2^0 \times 1) &= 16 + 8 + 4 + 2 + 1 \\ &= 31 \end{align*}

となり5bitの2進数で表すことが出来る最大値は31となります。よって0から31の32種類の数字を表すことが出来るわけです。

実はコンピュータの記憶デバイスにはこの2進数の性質が現れます。

記憶容量の単位はバイト(byte)という単位が使われます。

1バイト(byte)は8ビット(bit)です。

そして、これがさらに大きな単位で増えていきます:キロバイト(KB)、メガバイト(MB)、ギガバイト(GB)、テラバイト(TB)、ペタバイト(PB) など。通常、これらの単位は2のべき乗で増加します(例えば、1KBは通常1024バイト、1MBは1024KBとされます)。

雑談

USBメモリの容量がパッケージ容量より小さくなる理由

まずは1GBという単位から考えてみましょう。基本的な容量の単位は以下の通りです。

  1. 1 ビット (bit) : 0または1の情報。
  2. 1 バイト (Byte) : 8ビット。 2^3 = 8

これを拡張して考えると

  1. 1 キロバイト (KB) : 2^{10} = 1024 バイト
  2. 1 メガバイト (MB) :2^{20} = 1024 キロバイト
  3. 1 ギガバイト (GB) :2^{30} = 1024 メガバイト

これを実際の製品や広告などでは、1GBを1,000,000,000バイトとして計算することもあります。これは10のべき乗に基づくSI接頭辞を用いる「デカバイト」方式と呼ばれ、特にハードディスクなどの製品でよく見られます。しかし、多くのOSやソフトウェアは上記の2のべき乗に基づく方式(バイナリ接頭辞)を使用しています。この違いのため、製品の表示容量と実際にOSで認識される容量に差が出ることがあります。

Follow me!

-デジタル回路, 回路, 数の表現, 高専2年生
-, , ,

PAGE TOP