C言語

ビットとバイト

C言語とは」でも触れましたが、コンピュータは、「0」と「1」だけで命令やデータを表しています。
今回は、その「0」と「1」の単位である ビット(bit) と、それをまとめた バイト(byte) について解説します。
この内容を理解しておくと、メモリの仕組みや、マイコンのデータサイズを考えるときに役立ちます。

ビット(bit)とは

ビットは、コンピュータで扱う最小の単位です。

1ビットは 「0」または「1」 のどちらかを表します。

電気が流れている:1(ON)
電気がながれていない:0(OFF)


コンピュータ内部では、すべてのデータがこの0と1の組み合わせで管理されています。

例えば、CPUが理解する命令(「足し算しろ」、「メモリに保存しろ」など)は、最終的には次のようなビットの集まりになっています。

10110000 01100001

このように、0/1で表すのがビットになり、例では、0/1が16個並んでいるので、16ビットということになります。

バイト(byte)とは

バイトは、ビットの集まりです。
8ビットをまとめたものを 1バイト と呼びます。
つまり、1バイトは、0か1を8個並べたものです。

00000000 (1バイト)

次にバイトの単位についてです。

1キロバイト(KB):1024バイト
1メガバイト(MB):1024KB
1ギガバイト(GB):1024MB

※日常生活では「1キロメートル=1000メートル」など、「キロ=1000」というイメージがありますよね。
なぜ、「1024」なのか、次の記事で説明する2進数と16進数の中で説明します。

1バイトで表せる数

1ビットでは、「0」と「1」の2通りの状態が作れます。
では、2ビットならどうでしょう。

00
01
10
11

このように、4通りの状態が作れます。
つまり、2×2=4通りです。

3ビットならどうでしょう。

000
001
010
011
100
101
110
111

8通りの状態が作れます。
つまり、2×2×2=23=8通りです。
2のビット数乗の通り数になることがわかります。
同じように1バイトは、8ビットなので、

2×2×2×2×2×2×2×2 = 28 = 256通り

つまり、0~255の数字を表せることになります。

まとめ

  • ビット(bit) は 0 または 1 の最小単位
  • 1バイト(byte)=8ビット
  • 1バイトで表せる数は 0〜255(256通り)

-C言語