コンピューターサイエンス入門:理論編
バイト → KB 変換
この回でやること
バイトとKBの関係を読み解き、単位変換と端数の扱いを確かめます。
- 読む 約 7 分
- 最後にクイズ 1 問
アップロードの上限を決めるとき、設定ファイルには 10485760 のような数字が並びます。大きいのか小さいのか、桁を数えないと分かりません。これを人が読める大きさに直す一歩目が、割り算です。
単位を変えると比べやすい
データの基本単位はビットで、8ビットをまとめたものが1バイトです。ファイルの大きさや、DBに入る1行の重さもバイトで数えます。ただしバイトのままでは桁が多いので、より大きい単位で短く表します。この回では1024バイトを1 KBとして数えます。
| 単位 | バイト数 |
|---|---|
| 1 KB | 1,024 |
| 1 MB | 1,048,576 |
| 1 GB | 1,073,741,824 |
| 1 TB | 1,099,511,627,776 |
上の単位へ1段進むたびに1024で割ります。1024は2の10乗で、2進数ではきりのよい数です。容量そのものが減るのではなく、同じ大きさを別の単位で言い直しています。数値が小さくなっても、入れられるデータの量は同じです。
整数にすると端数が消える
割り算で小数を残すか捨てるかによって、見える値が変わります。時間の変換でも同じことが起きます。
Python
elapsed_ms = 1500
print(elapsed_ms // 1000) # 1
print(elapsed_ms / 1000) # 1.5Pythonの // は、この正の数の例では小数部分を捨てます。/ は小数を残すので、1.5秒をそのまま読めます。容量でも、切り捨てると実際より小さく見えます。
1024と1000を区別する
1024ごとの単位を厳密に書くと KiB、MiB、GiB です。KB、MB、GB は1000ごとの単位としても使われるため、表示の約束を先に確かめます。ディスクの箱とOSで容量が違って見えるのは、数え方が違う場合があるためです。OSによって表示方法も異なります。
回線の
Mbpsは1秒あたりのビット数、MB/sは1秒あたりのバイト数です。単位の倍率をそろえると、同じ数値でも8倍違います。
例題で確かめる
設定の上限が10485760バイトで、1024ごとに単位を変える場合を読み解きます。KBへは1回、MBへは2回割ります。
プレーンテキスト
10485760 ÷ 1024 = 10240 KB
10240 ÷ 1024 = 10 MB上限は10 MBです。バイトからMBへ直すときに1024で1回しか割らないと、10240というKBの値をMBと誤って表示してしまいます。数字と単位を一緒に追うと、割る回数も確かめられます。