Menu
Coddy logo textTech

バイトとは?

バイトとは、8ビットで構成されるデジタルデータの単位で、0から255までの256通りの値を表せます。ほとんどのコンピュータでは、固有のアドレスを持つメモリの最小単位であり、ファイルのサイズもバイトで数えます。

執筆: Kevin Spektor, 共同創業者、CTO

更新日: 2026年9月24日

128
64
32
16
8
4
2
1
10進数65
Hex41
ASCII文字A
  • 48H
  • 69i
  • 20␣
  • F0 9F 98 80😀

4文字、7バイト

コンピュータに保存された文字Aは数値の65で、数値の65は 01000001 という8個のビットとして保存されています。この8個のまとまりがバイトです。メモリのアドレスもファイルのサイズもバイト単位で数えますし、プログラミング言語のほとんどすべてのデータ型は、ちょうど整数個のバイトの長さを持っています。

なぜ1バイトは8ビットなのか

「バイト(byte)」という言葉は、1956年にヴェルナー・ブッフホルツがIBMのStretchというコンピュータの開発中に作りました。「bit」と読み間違えられないように、yを使って綴ったのです。初期のコンピュータはさまざまな大きさのまとまりを使っていて、6ビットがよく使われました。6ビットは大文字と数字には十分でしたが、小文字は収まりませんでした。

1964年に発表されたIBMのSystem/360が8ビットのバイトを使い、業界の残りもそれにならいました。8ビットで表せるのは256通りの値で、大文字と小文字、数字、句読点、制御コードを収める余裕があります。また8は2のべき乗なので、1バイトは4ビットずつの2つの半分にきれいに分けられ、それぞれを16進数1桁で書けます。ちょうど8ビットであることを厳密に示す必要があるとき、ネットワークの規格は今でも「オクテット」という言葉を使います。

1バイトに入るもの

1バイトには、00000000 から 11111111 までの256通りのパターンがあります。プログラムはこれをいくつかの決まった方法で読みます。

  • 0から255までの符号なしの数として。
  • -128から127までの符号付きの数として。
  • A(65)や !(33)のような1つの文字として。
  • 00 から FF までの16進数2桁として。

Pythonの bytes 型はこうした値の並びで、0から255の範囲外の値は受け付けません。

b'Hi!'
[72, 105, 33]
01001000 48
ValueError: bytes must be in range(0, 256)

すべての文字が1バイトに収まるわけではありません。Webのほとんどで使われている文字コードのUTF-8は、128個のASCII文字をそれぞれ1バイトで、それ以外の文字を2から4バイトで保存します。

A 1 bytes: [65] 41
é 2 bytes: [195, 169] c3a9
€ 3 bytes: [226, 130, 172] e282ac
😀 4 bytes: [240, 159, 152, 128] f09f9880

文字列の文字数とバイト数が一致しないことがあるのは、このためです。

ビットとバイトの違い

ビットは1つの0または1です。バイトは8ビットです。2つの単位は記号が大文字か小文字かしか違わないので、混同しやすいです。

ビットバイト
何か2進数の1桁8ビット
取り得る値2通り(0か1)256通り(0から255)
記号b(小文字)B(大文字)
よく使われる対象通信速度: Mbps、Gbps記憶容量とファイルサイズ: KB、MB、GB
例100 Mbpsの回線5 MBの写真

ビットをバイトに直すには8で割ります。100 Mbpsの回線で送れるのは最大で毎秒12.5 MBなので、5 MBの写真をダウンロードするには少なくとも0.4秒かかります。

キロバイト、メガバイト、ギガバイト

大きな単位には2つの体系があり、その差のせいで、新しいドライブがWindowsではラベルの表示より小さく見えます。

10進(SI)バイト数2進(IEC)バイト数
キロバイト(kB)1,000キビバイト(KiB)1,024
メガバイト(MB)1,000,000メビバイト(MiB)1,048,576
ギガバイト(GB)1,000,000,000ギビバイト(GiB)1,073,741,824
テラバイト(TB)1,000,000,000,000テビバイト(TiB)1,099,511,627,776

ドライブのメーカー、通信速度、そしてmacOS(2009年のバージョン10.6以降)は10進の単位を使います。RAMの容量とWindowsは2進の単位を使いますが、WindowsはそれをKB、MB、GBと表示します。IECはこの混乱をなくすために1998年にキビバイト、メビバイト、ギビバイトという名前を導入しましたが、今でも多くのプログラムはこれらを使っていません。

1.0 TB (decimal, used on the box)
931.3 GiB (binary, what Windows calls GB)
12.5 MB per second

容量が消えたわけではありません。ドライブにはパッケージが約束するとおり1兆バイトが入っています。Windowsが1,000ではなく1,024で3回割っているだけです。

コードの中のバイト

メモリ上のすべての値は、整数個のバイトを占めます。Cでは sizeof がその数を教えてくれます。char は定義上ちょうど1バイトで、現在の64ビットのLinux、macOS、Windowsのシステムでは、short が2バイト、int が4バイト、double が8バイトです。したがって、1,000個の int の値を持つ配列は4,000バイトを使います。

printf("%zu\n", sizeof(int));   /* prints 4 */

Javaの byte 型は常に符号付きで、-128から127までなので、200のような値は収まりません。

byte b = (byte) 200;   // b is -56: the same 8 bits, read as signed

画像、圧縮ファイル、ネットワークのパケットのような生のデータは、バイトの配列として扱います。Pythonでは bytes と bytearray、Javaでは byte[]、JavaScriptでは Uint8Array です。Pythonでファイルをモード "rb" で開くと、テキストではなくそのバイトが得られます。

ハッシュやチェックサムもバイトで大きさを測ります。SHA-256のダイジェストは32バイトなので、16進数64文字で表示されます。CRC32のチェックサムは4バイトです。ハッシュ生成ツールを使うと、任意のテキストについて両方を確認できます。

次に読むページ

バイトの下にある単位についてはビットとは何かを、バイトを使って壊れたファイルを検出する方法についてはチェックサムとは何かを読んでください。進数変換ツールを使えば、どんなバイトでも10進数、2進数、16進数の間で変換できます。Cのデータ型のガイドには、Cのすべての型のバイト単位のサイズが載っています。

よくある質問

8ビットの11111111は何と呼ばれますか?
8ビットは1バイトで、11111111 はすべてのビットが1になったバイトです。符号なしの数として読むと255で、1バイトが持てる最大の値であり、16進数では FF と書きます。2の補数による符号付きのバイトとして読むと、同じビットが -1 を意味します。
なぜ8ビットが1バイトなのですか?
8という数は自然の法則ではなく、広く採用された慣習です。1964年に発表されたIBMのSystem/360が8ビットのバイトを使い、それ以降のほぼすべてのコンピュータがそれにならいました。8ビットあれば256通りの値を表せるので、大文字と小文字、数字、記号を収めるのに十分です。また8は2のべき乗なので、ハードウェアや計算を単純に保てます。
4ビットはなぜニブルと呼ばれるのですか?
ニブル(nibble)はバイトの半分で、その名前は言葉遊びです。byteと発音が同じbite(ひとかじり)に対して、nibbleは「少しかじる」という意味です。4ビットで表せるのは16通りの値で、これは16進数のちょうど1桁分です。そのため1バイトは常に16進数2桁で、ニブル1つにつき1桁で書かれます。nybbleと綴られることもあります。
1バイトは4ビットですか?
いいえ。1バイトは8ビットです。4ビットはバイトの半分で、ニブルと呼ばれます。
バイトとGBはどちらが大きいですか?
ギガバイトのほうがはるかに大きく、ドライブのメーカーが使う10進法では10億バイト(1,000,000,000)、Windowsが使う2進法では1,073,741,824バイトです。バイトが基本の単位で、キロバイト、メガバイト、ギガバイトはその倍数です。
1バイトは実際にはどのように見えますか?
1バイトは 01000001 のような、8個の0と1の並びです。このパターンは数値の65で、ASCIIでは文字 A のコードでもあります。プログラマはふつう、代わりに1バイトを16進数2桁で書くので、01000001 は 41 になります。
Coddy programming languages illustration

Coddyでコードを学ぼう

始める