プログラミングを始めると、すぐに出会う用語がビット(bit)とバイト(byte)です。
名前が似ていて混乱しやすいですが、違いと変換のコツさえ分かれば怖くありません。
ここでは8ビット=1バイトを軸に、読み方、表記、計算、使いどころを順番にやさしく解説します。
ビットとバイトの基本
ビットとは
ビット(bit)は0か1を表す最小の情報です。
電気の世界では電圧があるかないかのように、はっきりと2つに分かれる状態を指します。
プログラムの内部でも、真偽値のような2択の情報の基本単位として扱われます。
たとえでイメージ
電球のONかOFF、門の開くか閉じるかのように、ひとつのビットは「2つの選択肢のうちどちらか」を記録します。
この「2択」を積み重ねると、より多くの情報を表現できます。
バイトとは
バイト(Byte)は8個のビットをひとかたまりにした単位です。
コンピュータが扱うデータの基本的なブロックで、メモリやファイルの大きさは通常このバイトを基準に数えます。
文字との関係
英数字や記号などの基本的な文字は、文字コードによって1文字=1バイトで表されることがあります。
ただし、日本語などの多言語では1文字が複数バイトになることがあります。
この点は後半でやさしく触れます。
8ビット=1バイト
8ビット=1バイトは最重要のルールです。
8個のビットがあると、0と1の並び方が256通りあるため、ちょうど良い大きさの情報のかたまりになります。
いくつの状態を表せるか(目安)
ビット数 | 表現できる状態の数 | 例 |
---|---|---|
1 | 2 | 0か1 |
8 | 256 | 基本的な文字の数(1バイト文字) |
24 | 約1677万 | 画像のカラー値(24ビットカラー) |
覚え方のコツ
8は2×2×2です。
つまり、「×2を3回」するとビットの数からバイトへの変換や感覚がつかみやすいです。
違いが分かる読み方と表記
bとBの違い
表記の<b>小文字b</b>はbit(ビット)、<b>大文字B</b>はByte(バイト)です。
大文字小文字を間違えると8倍の誤差になるので注意しましょう。
覚えておく表
以下は読み間違いを防ぐための基本です。
表記 | 読み方 | 単位の意味 | 主な場面 |
---|---|---|---|
b | ビット | 0か1の最小単位 | 通信速度など |
B | バイト | 8ビットのかたまり | ファイルやメモリ |
K, M, G | キロ、メガ、ギガ | 桁の大きさ | 例: Mbps, MB |
bはbit、BはByteと覚えるだけで、ほとんどの混乱は避けられます。
通信速度はbps
通信の世界ではbps(bits per second)を使います。
これは「1秒あたりに何ビット送れるか」を表します。
100 Mbpsは「1秒に100メガビット」の意味です。
速度から毎秒のバイトに直す
通信速度を「毎秒のバイト量」に直したいときは、÷8します。
たとえば100 Mbpsなら約12.5 MB/sです。
現実の通信では制御データなどの影響で、実効速度は理論値より低くなります。
ファイルサイズはB
ファイルやメモリの容量はB(Byte)で表します。
1 KB、1 MB、1 GBといった表記がこれに当たります。
プログラムでサイズを扱うときも基本はバイトです。
表記の例
以下の例を目で見て確認しておきましょう。
表記 | 読み方 | 意味の説明 | よく見る場所 |
---|---|---|---|
100 Mbps | ひゃくメガビット毎秒 | 1秒に約12.5 MB送れる理論速度 | 回線速度の広告 |
5 MB/s | ごメガバイト毎秒 | 1秒に5 MBを転送する速度 | ファイルコピーの表示 |
512 KB | ごひゃくじゅうにキロバイト | 約0.5 MBのサイズ | 設定ファイルや画像 |
2 GB | にギガバイト | 約2,000 MBのサイズ | ストレージ容量 |
毎秒の速度はb、容量の合計はBという区別がポイントです。
かんたん変換と計算のコツ
ビット→バイト
ビットをバイトに変えるときは÷8です。
暗算では「2で3回割る」と覚えると楽になります。
80 Mb → 40 Mb → 20 Mb → 10 Mb = 10 MB
バイト→ビット
バイトをビットに変えるときは×8です。
暗算では「2を3回掛ける」と考えます。
25 MB → 50 → 100 → 200 → 200 Mb
単位の目安
桁のイメージをつかむために、ざっくりの目安を覚えておくと便利です。
単位 | おおよその関係 | 使いどころの目安 |
---|---|---|
1 B | 8 bit | 英数字1文字程度 |
1 KB | 約1000 B(プログラムでは約1024 Bを使う場面も) | 短いテキスト |
1 MB | 約100万 B | 画像1枚〜数枚 |
1 GB | 約10億 B | 動画やアプリ |
おおまかに1000倍ごとに桁が上がると覚えておけば十分です。
計算例
例1: 通信での所要時間
100 Mbpsの回線で50 MBのファイルをダウンロードするとします。
手順はバイト→ビット→時間の順です。
- 50 MBをビットに変換: 50 × 8 = 400 Mb
- 時間 = 400 Mb ÷ 100 Mbps = 約4秒(理論値)
実際には回線や機器の影響でもう少し長くかかります。
例2: コピー速度から時間を見積もる
USBメモリのコピー表示が20 MB/sで、ファイルが600 MBなら、600 ÷ 20 = 約30秒です。
例3: メモリ使用量の概算
配列に整数(int)を1000個入れるとします。
多くの環境でintは4 Bなので、1000 × 4 B = 約4000 B(約4 KB)です。
型のサイズは言語や環境で異なる点に注意します。
プログラミングでの使いどころ
メモリと配列のサイズ
配列やバッファは「要素サイズ(バイト) × 個数」で必要メモリが決まります。
たとえばbyte型の配列は1要素=1 Bなので、1000要素で1000 Bです。
intやdoubleのような型は要素サイズが大きくなるため、同じ要素数でも必要メモリが増えます。
- int(4 B)の配列を1000個 → 4000 B ≈ 4 KB
- double(8 B)の配列を1000個 → 8000 B ≈ 8 KB
必要なサイズを先に計算してから確保すると、メモリ不足や無駄な確保を避けやすくなります。
ファイル入出力
ファイルはバイトの並びとして読み書きします。
読み込み時は、バッファ(例: 4096 Bや8192 B)のサイズを決めて、その単位で少しずつ処理すると効率が良くなります。
書き込みも同様に、バイト配列を扱う関数やメソッドを使います。
文字とバイト数
1文字=1バイトとは限りません。
UTF-8では、英数字は多くが1 Bですが、日本語や絵文字は複数バイトになります。
たとえば「abc」は3 Bですが、「あい」はUTF-8で6 B程度です。
文字数とバイト数を混同すると、見積もりやバッファサイズで誤差が出ます。
実務でのコツ
文字数を数える処理と、実際に使うバイト数を数える処理は別に用意するのが安全です。
APIやライブラリの「文字列の長さ」が文字数なのかバイト数なのかも確認しましょう。
注意点
よくあるつまずきを、短く整理します。
詳細は下の表も参考にしてください。
- bとBの読み間違いに注意します。速度(bps)と容量(B)の区別が最重要です。
- 表示の「/s」(毎秒)を見落とさないようにします。MBとMB/sは意味が違います。
- KBやMBの「1000か1024か」は状況で異なります。おおまかに1000、プログラム内では1024を使う場面が多いです。
- 文字列は文字数とバイト数が一致しないことがあります。保存前や送信前にバイト数を確認すると安全です。
よくある勘違いと回避ヒント
勘違い | 正しい考え方 |
---|---|
1 MB/s = 1 Mbps | 1 MB/s = 8 Mbpsです。Bとbの違いに注意。 |
1 KBは必ず1024 B | 実世界の表示では約1000 B、プログラムでは1024 Bを使うこともあります。 |
1文字=1バイト | エンコーディングで変わります。UTF-8の日本語は複数バイトです。 |
表示の数値はそのまま出る | 通信やファイルには制御情報があり、実効値は理論値より低くなりがちです。 |
まとめ
ビットとバイトは、初心者がつまずきやすい最初の関門ですが、8ビット=1バイトという軸を押さえれば一気に分かりやすくなります。
通信の速度はb(bps)、ファイル容量やメモリはB(Byte)という区別を常に意識し、変換は×8と÷8でシンプルに考えましょう。
表記の読み方を正しく理解すれば、仕様書やツールの表示が読みやすくなり、プログラムでのメモリ管理やファイル処理も迷いにくくなります。
最後にもう一度、bとBの大文字小文字の違いを見落とさないこと。
これだけで、多くの計算ミスを防げます。