← PC・IT用語集へ戻る

ビット / バイト

Bit / Byte
data environment beginner
0か1を表す情報単位「ビット」と、現代の一般的なコンピュータで8ビットをまとめた単位「バイト」。
ビット / バイト (Bit / Byte)

概要(サマリー)

ビット(bit)はコンピュータが扱う情報の最小単位(0または1)であり、バイト(Byte)はビットを8個集めた(8ビット)コンピュータ処理の基本単位である。

コンピュータはすべてのデータを「ON(1)」と「OFF(0)」の電気信号で表しており、これらが大量に組み合わさることで、文字や画像、動画といった複雑なデータが表現されている。データ量やファイルサイズ、通信速度を理解するためのすべての出発点となる用語である。


詳細解説

ビットとバイトとは何か

コンピュータの世界における「単位」の基本は、ビットとバイトの2つである。

  • ビット(bit):「0」か「1」のどちらか1つの状態を表すことができる、データの最も小さな箱。小文字の「b」で略される。
  • バイト(Byte):ビットを8個まとめた塊(8ビット = 1バイト)。大文字の「B」で略される。

0と1で世界を表現する「2進数」

コンピュータは、私たちが普段使っている10進数(0から9の数字)ではなく、0と1だけで数を数える「2進数(バイナリコード)」で動いている。

1ビットでは「0」か「1」の2通りしか表現できないが、ビットの数を増やすことで、表現できる組み合わせ(情報量)は倍々ゲームで増えていく。

  • 1ビット:2通り(0, 1
  • 2ビット:4通り(00, 01, 10, 11
  • 3ビット:8通り
  • 8ビット(1バイト):256通り(00000000 から 11111111 まで)

8ビットでは256通りを表せる。ASCII自体は7ビットの文字コードだが、8ビット単位は文字コードや数値などを扱ううえで広く使われるようになった。

なぜ「1バイト = 8ビット」なのか?

歴史的には、かつて4ビットや6ビットを1バイトとして扱う初期のコンピュータも存在した。

しかし、1960年代にIBM社が自社のコンピュータで「8ビット = 1バイト」の規格を採用し、これが業界の圧倒的なスタンダードとなった。8ビット(256通り)あれば、英数字だけでなく、主要な制御コードや欧州の文字なども効率よく表現でき、2の3乗($2^3=8$)というコンピュータにとって計算しやすいキリの良い数値であったことも理由の1つである。

データ量の単位と桁上がり(KB、MB、GB、TB)

画像や動画のようにデータ量が大きくなると、バイトの前に「K(キロ)」「M(メガ)」といった接頭辞をつけて単位を大きくする。

  • 1 kB(キロバイト):1,000 B
  • 1 MB(メガバイト):1,000,000 B
  • 1 KiB(キビバイト):1,024 B
  • 1 MiB(メビバイト):1,024 KiB

SI接頭語のk、M、Gは1000倍を表し、2進数基準の1024倍にはKi、Mi、Giを使う。ただし、OSや製品によって表示上の慣習が異なる。

通信速度とデータ量の単位の書き分け

ネットワークの通信速度を表す際には、一般的に「ビット」が使われる。

  • bps(bits per second):1秒間に送信できる「ビット」数。
  • MB/s(MegaBytes per second):1秒間に送信できる「バイト」数。

インターネット回線の速度でよく見る「1Gbps」などは、大文字の「B(バイト)」ではなく、小文字の「b(ビット)」で計測されているため、実際のダウンロードファイルサイズ(バイト)に換算する際には、数値を「8」で割る必要がある。


AIコーディングとの関係

AIコーディングやプログラム開発において、ビットとバイトの知識は「ファイル操作」「データ通信」「パフォーマンス最適化」の場面で頻出する。

例えば、AIに「ファイルをアップロードするプログラム」を書かせる場合、ファイルの容量制限をかけるロジックが必要になる。その際、プログラム内部ではファイルサイズは「バイト(B)」単位で処理されるため、AIに「最大5MBまでの制限をかけるJavaScriptコードを書いて」と頼むと、以下のようにバイト値に変換した正確なコードを出力してくれる。

// 5MBをバイト単位に変換 (5 * 1024 * 1024)
const MAX_FILE_SIZE = 5 * 1024 * 1024;

function checkFileSize(file) {
  if (file.size > MAX_FILE_SIZE) {
    alert("ファイルサイズは5MB以下にしてください。");
    return false;
  }
  return true;
}

また、C言語やJavaScriptなどの低レイヤー(機械に近い部分)のプログラミングで、メモリ効率を究極まで高めるために1ビット単位でデータを操作する「ビット演算(AND, OR, シフト演算など)」のコードをAIに生成・解説させる場合にも、2進数とビットの理解が前提となる。

プロンプト例:
「JavaScriptで、数値のフラグ管理を行うためのビット論理積(AND)とビット論理和(OR)を使った具体的なコード例と、その2進数ベースでの解説を書いてください。」

よくある勘違い

「1KB = 1000バイト」で、常にきれいな10進数で計算される?

半分間違いである。コンピュータのOS(Windowsなど)の内部処理では、2の10乗である「1KB = 1,024バイト」として厳格に計算される。しかし、HDDやSSDなどの市販のストレージ製品のスペック表記や、一部のOS(macOSなど)の表示ルールでは、一般の人に分かりやすくするために10進数の「1KB = 1,000バイト」として計算されている。
このため、「2TBのハードディスクを買ったのに、Windowsに接続すると1.8TBと表示されて容量が少なく見える」というお馴染みの現象(計算方式のギャップ)が発生する。

通信速度「100Mbps」は、1秒間に100MBのファイルをダウンロードできる?

これは初心者が最も起こしやすい誤解である。速度の「100Mbps」は「100メガビット毎秒」である。ファイルの容量は「バイト(1バイト = 8ビット)」で表されるため、100Mbpsをバイトに換算するには「8」で割る必要がある。
$100 \div 8 = 12.5$ となり、最大速度でも「1秒間に12.5MB」しか送信できない。100MBのファイルを落とすには、最低でも8秒かかるのが正しい計算である。

ビット(bit)とバイト(Byte)はどちらも大文字の「B」で省略していい?

絶対に混同してはならない。世界共通のルールとして、ビットは小文字の「b」、バイトは大文字の「B」と明確に書き分けられる。
例えば、スマートフォン回線のデータ通信制限で「残り 5Gb」と「残り 5GB」では、データ量に8倍(5GB = 40Gb)もの差がある。開発時の設計書やAIへの指示文でも、小文字の b と大文字の B は正確に区別して記述する必要がある。


まとめ

  • ビット(b)はデータの最小単位(0か1)、バイト(B)は8ビットをまとめた基本単位。
  • 1バイト(8ビット)あれば、英数字や記号を1文字分表現できる(アスキー文字)。
  • 1000倍のSI単位(kB、MB、GB)と、1024倍の2進単位(KiB、MiB、GiB)を区別する。
  • 通信速度(bps = ビット)とファイルサイズ(B = バイト)の間には「8倍の差」がある。
  • AIコーディングでファイル制限やデータ変換ロジックを書かせる際は、バイト単位(例:1MB = 1048576バイト)の変換に注意する。

情報ソース


より詳しくAIに聞いてみよう

  • コンピュータのデータ量で使われる「1024基準のバイナリ単位(KiB、MiB)」と「1000基準のデシマル単位(KB、MB)」の違いを詳しく教えてください。
  • JavaScriptを使って、ファイルサイズ(バイト数値)を「1.2 MB」や「350 KB」のように人間が読みやすい最適な単位の文字列に変換する関数を書いてください。
  • プログラミングにおいて、メモリ消費を抑えるために1つの「バイト」データの中で複数の「ビットフラグ」を管理する(ビットマスク)の実装例を教えてください。
  • 通信速度の単位である「bps」と、サーバーの転送量制限などで使われる「GB/日」を相互に変換する計算式を解説してください。
  • 2進数の「補数」表現について、なぜコンピュータは引き算を足し算に変換して処理するのか、ビットの仕組みを踏まえて教えてください。