「1KB = 1024Bなのか1000Bのどっちなのか問題」を各種ソフトウェアで調べる
なんの話?
https://gyazo.com/dc07e915bd2054ca4d2fe2b5a854abd2
以下の2の冪数か10の冪数か?のどっちが使われているか調べたい。
慣用値
1KB = 1024B
1MB = 1024KB
1GB = 1024 MB
...
SI基準
1KB = 1000B
1MB = 1000KB
1GB = 1000MB
...
Google検索してもどっちも正しいし、どちらも使われているとのこと。ならどっちを使うべきなのかよく分からないので、世の中で使われているツールなどがどっちを使っているか調べたくなった。 検証方法
以下のファイルを準備する
10_9.dat: 1バイト文字を$ 10^9 = 1000000000書き込んだテキストファイル
2_30.dat: 1バイト文字を$ 2^{30} = 1073741824書き込んだテキストファイル
注意: 1000バイトと1024バイトのファイルの比較だとツールによっては両方とも1KBとなってしまうものがあったため、差を広げるために1GBや1GiBを表すファイルを利用することにした。
code:bash
$ ls -lh
-rw-r--r-- 1 ryo staff 954M Sep 9 21:36 10_9.dat
-rw-r--r-- 1 ryo staff 1.0G Sep 9 21:33 2_30.dat
$ 10^9: 954M
$ 2^{30}: 1G
この結果でMacのlsだと$ 2^{30}で1GBになることがわかった。 結果: 1KB = 1024B派
code:bash
$ ls -lh
-rw-r--r-- 1 root root 954M Sep 9 12:36 10_9.dat
-rw-r--r-- 1 root root 1.0G Sep 9 12:33 2_30.dat
この結果でUbuntuでもMacと同じく$ 2^{30}で1GBになり、$ 10^9は1GBにならないことがわかった。 結果: 1KB = 1024B派
MacのVersion 76.0.3809.132 (Official Build) (64-bit)を使った。 ブラウザのダウンロードの進捗に表示されるバイト数を調べてみる。
https://gyazo.com/d10b11b4435c0d0f95facda0994f8fc6
https://gyazo.com/d2b7b4a83a9e5aa9c3c8afafc61193b1
結果: 1KB = 1024B派
https://gyazo.com/4bd9174d1a89b49c46051e4bb420142f
https://gyazo.com/fb181459f2f0e494c368f96c25ce15ee
この結果でFirefoxでも同じく$ 2^{30}で1GBになることがわかった。 結果: 1KB = 1024B派
https://gyazo.com/8f56eb70fcca0dc0a0c4b77200166d97
https://gyazo.com/6cb2718f4c39a7b8633870b76b52d178
ブラウザのSafariは今まで結果と異なり、$ 10^9が1GBだった。$ 2^{30}は1.07GBになる様子。 結果: 1KB = 1000B派
https://gyazo.com/c711b7e5019c3b651138b7bf51e3a3c9
https://gyazo.com/e388aca4fd8df2df57c71ba625893f56
結果: 1KB = 1000B派
https://gyazo.com/f4c65e1e9d81731bf6daefde11fa8d1e
https://gyazo.com/4b19e9e804df1491bb48f25db99a437d
https://gyazo.com/b5f05d00a75c48d3d699ebb77815b3b9
結果: 1KB = 1024B派
pvコマンドはパイプの間に挟んで進捗バーを出せる便利なコマンド。 code:bash
$ pv 10_9.dat > /dev/null
$ pv 2_30.dat > /dev/null
結果: 1KB = 1024B派
何か広く使われている他のツールがあれば、増やしたい。
まとめ
1KB = 1024B派が多い。いまのところ 1KB = 1000B派が確認できたのはApple系のソフトウェアのみ。