回答:
電子コンピューターのデータはさまざまな方法で保存および送信されますが、それらは常にバイナリ値のシーケンス(0または1)として解釈されます。1つのバイナリ値はビットと呼ばれます。8ビットは、オクテットまたはバイトと呼ばれます。これにはコンセンサスがあります。
ビットはとしてb
、バイトはとして示されますB
。これにはコンセンサスがあり、この規則に違反するアプリケーションを見つけた場合、それは間違いなくバグまたはエラーです。人々はしばしばこの2つを混同しますが、アプリケーション開発者と製造業者全体はそうではありません。
より大きなユニットに到達すると、2つの考え方があります。これは、残念ながらコンセンサスがないことを意味します。さまざまなオペレーティングシステムとさまざまなアプリケーションが、いずれかの考え方に属します。
Ubuntuには、このようなユニットを定義するユニットポリシーが公開されています。
(1024年は2プログラマのための生活を楽にできる10の力にあるので、なぜ1024?。)ユニットの第1セットは、1024の倍数である単位のこのセットは後に、バイナリ単位またはIECプレフィックスと呼ばれ、IEC標準それらを定義した:
1KiB
= 1024バイト(大文字のKに注意)1MiB
= 1024KiB
= 1048576バイト1GiB
= 1024MiB
= 1048576KiB
= 1073741824バイト単位の2番目のセットは1000の倍数です。これは、メートル、リットル、グラムなど、SIシステムで一般的に使用される単位とより密接に整合します。1キログラムは1000グラムです。同様に、キロバイトは1000バイトです。この単位のセットは、10進単位またはSIプレフィックスと呼ばれます。
1kB
= 1000バイト(小文字のkに注意)1MB
= 1000kB
= 1000000バイト1GB
= 1000MB
= 1000000kB
= 1000000000バイト従来、多くのアプリケーション、オペレーティングシステム、および開発者はバイナリユニットを使用し、SI名を付けていました。Ubuntu、GNOME、およびOS Xはすべて、前述の公開された標準に従うことを試みますが、Microsoft Windowsおよび多くのUNIXユーティリティはまだこれらの従来のユニットを使用しているため、それらに注意する必要があります。
1KB
= 1024バイト(大文字のKに注意)1MB
= 1024KB
= 1048576バイト1GB
= 1024MB
= 1048576KB
= 1073741824バイトただし、伝統的に、速度はSIプレフィックスを使用して1秒あたりのビット数で指定されます!したがって、1Mbpsは実際には1秒あたり1000000ビットであり、Microsoft Windowsでも1秒あたり125000バイトです。
ご覧のとおり、これらの矛盾する定義は多くの混乱を招きます。私が言うとき、私は1MB
100万バイトを意味しますか、それとも1048576バイトを意味しますか?
あいまいさを回避するには、次のいずれかの戦略を使用する必要があります。
1MiB
常に明確です。あいまいさがある場合は、次のような優れた経験則が役立ちます。
KB
(大文字のKで)発見した場合、おそらく従来のユニットが使用されています。kB
(小文字のkで)発見した場合、SIユニットがおそらく使用されています。Ubuntuアプリケーションに関しては、どのアプリケーションがどのシステムを使用するかを指定するこのリストを見てください。