Ubuntuのアプリケーションはどのファイルサイズ単位を使用しますか?


13

アプリケーションごとに異なるユニットを使用していること、または異なるユニットを意味していることに気付きました。

例えば、私が遭遇しているkBKBKiBKbK。これらの各ユニットは何バイトを表しますか?

これらのユニットに異なる定義がある場合、どのアプリケーションがどの定義を使用しますか?

回答:


20

前書き:

電子コンピューターのデータはさまざまな方法で保存および送信されますが、それらは常にバイナリ値のシーケンス(0または1)として解釈されます。1つのバイナリ値はビットと呼ばれます。8ビットは、オクテットまたはバイトと呼ばれます。これにはコンセンサスがあります。

ビットはとしてb、バイトはとして示されますB。これにはコンセンサスがあり、この規則に違反するアプリケーションを見つけた場合、それは間違いなくバグまたはエラーです。人々はしばしばこの2つを混同しますが、アプリケーション開発者と製造業者全体はそうではありません。

より大きなユニットに到達すると、2つの考え方があります。これは、残念ながらコンセンサスがないことを意味します。さまざまなオペレーティングシステムとさまざまなアプリケーションが、いずれかの考え方に属します。


Ubuntuのユニットポリシー:

Ubuntuには、このようなユニットを定義するユニットポリシーが公開されています。

(1024年は2プログラマのための生活を楽にできる10の力にあるので、なぜ1024?。)ユニットの第1セットは、1024の倍数である単位のこのセットは後に、バイナリ単位またはIECプレフィックスと呼ばれ、IEC標準それらを定義した:

  • 1キビバイト1KiB= 1024バイト(大文字のKに注意)
  • 1メビバイト1MiB= 1024KiB= 1048576バイト
  • 1ギビバイト1GiB= 1024MiB= 1048576KiB= 1073741824バイト

単位の2番目のセットは1000の倍数です。これは、メートル、リットル、グラムなど、SIシステムで一般的に使用される単位とより密接に整合します。1キログラムは1000グラムです。同様に、キロバイトは1000バイトです。この単位のセットは、10進単位またはSIプレフィックスと呼ばれます。

  • 1キロバイト1kB= 1000バイト(小文字のkに注意)
  • 1メガバイト1MB= 1000kB= 1000000バイト
  • 1ギガバイト1GB= 1000MB= 1000000kB= 1000000000バイト

従来のユニット:

従来、多くのアプリケーション、オペレーティングシステム、および開発者はバイナリユニットを使用し、SI名を付けていました。Ubuntu、GNOME、およびOS Xはすべて、前述の公開された標準に従うことを試みますが、Microsoft Windowsおよび多くのUNIXユーティリティはまだこれらの従来のユニットを使用しているため、それらに注意する必要があります。

  • 1キロバイト1KB= 1024バイト(大文字のKに注意)
  • 1メガバイト1MB= 1024KB= 1048576バイト
  • 1ギガバイト1GB= 1024MB= 1048576KB= 1073741824バイト

ただし、伝統的に、速度はSIプレフィックスを使用して1秒あたりのビット数で指定されます!したがって、1Mbpsは実際には1秒あたり1000000ビットであり、Microsoft Windowsでも1秒あたり125000バイトです。


あいまいさを避ける方法:

ご覧のとおり、これらの矛盾する定義は多くの混乱を招きます。私が言うとき、私は1MB100万バイトを意味しますか、それとも1048576バイトを意味しますか?

あいまいさを回避するには、次のいずれかの戦略を使用する必要があります。

  • IECプレフィックスを排他的に使用します。1MiB常に明確です。
  • バイト数への変換を含めます。例:1MBまたは1000000バイト
  • IECとSIの両方のプレフィックスを使用します。例:1MiBまたは約1.048MB。あなたが何を意味するのかが明確になるので、私はこの解決策を好みます、そして、それは読者が精神的な計算を実行する必要はありません。

あいまいさがある場合は、次のような優れた経験則が役立ちます。

  • KB(大文字のKで)発見した場合、おそらく従来のユニットが使用されています。
  • kB(小文字のkで)発見した場合、SIユニットがおそらく使用されています。
  • 数値が速度を表している場合は、おそらく小数単位が使用されています。
  • 数値がOS X上、最新のUbuntuまたはGNOMEアプリケーション上にある場合、おそらく10進単位が使用されています。
  • 数値がハードドライブまたは別のコンピューティング機器にある場合は、おそらく小数単位が使用されています。
  • 番号がLinuxのコマンドラインユーティリティからのものである場合、従来のバイナリユニットが使用されている可能性があります。
  • 番号がMicrosoft Windowsアプリケーションからのものである場合、従来のバイナリユニットがおそらく使用されています。

Ubuntuアプリケーションに関しては、どのアプリケーションがどのシステムを使用するかを指定するこのリストを見てください。

参照:

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.