はじめに
えか太郎です。JK(情報大好き高校生)です。本記事ではタイトルにあるように「なぜ容量だと1GB=1024MBなのに速度だと1GB/s=1000MB/sなのか?」という疑問についてまとめました。
。
そもそもなぜ1024という数が出てくるのか
おそらくQiitaを見るような人はコンピューターは2進数で動いているためキリの良い2進数で1K=1000(キロ)に一番近いのが2^10 = 1024だからという理由を知っていると思います。後述しますが二進数で数字を扱う場合2^nで表せる数はすごくシンプルに二進数でかけるのです。
もし1024が1000のなら
- 1K=1000を2進数で表すと「001111101000」。
>人間には複雑。 - 1k=1024を二進数で表すと「010000000000」。
>わかりやすい。
このような理由で昔決められて以降、ずっとこの規格は生きているためいまも1K=1024なのだ
1024を1000にしようとする動き
コンピューター上で使われている1024を1000にするために1KB(キロバイト)の代わりとして1KIB(キビバイト)というものが作られた。しかし、普及率はいまいち。
本題:なぜ通信速度では1Kが1000なのか?
まずそもそもの前提としてSI接頭語においての1k=1000=10^3であり2^10ではない
国際単位系(SI)第8版(2006年)国際文書日本語版 に、これについての記述があります。
これらの SI 接頭語は 10 の整数乗を表す.
それらを決して2のべき乗を表すために用いてはならない
(つまり,1キロビットは 1000 ビットであり,1024 ビットではない)
コンピューターのように1k=1024は本来の用法ではなく、1k=1024は二進数で動作するコンピュータ(CPU、RAMなどなど)でのみ使用されるものなのです。
通信をする際には人間がそれらを確認する必要は少ないため2進数で表記したとき美しい1024(2^10)を用いる必要がありません。したがって通信速度での単位は1k=1000と策定されており1GB/s=1000MB/sとなる。
謝辞
正直言って結局SI接頭語は基本的に10のN乗といった形で使いコンピュータのように2の10乗で1024=1kとして使うのは正しい使い方ではないという結論に帰結しそれらしい理由しか導くことができませんでした。間違いがある場合は教えてくださると助かります