web-dev-qa-db-ja.com

バイトをメガバイトに変換する

バイトからメガバイトへの変換を行う3つの方法を見てきました。

  1. メガバイト=バイト/ 1000000
  2. megabytes = bytes/1024/1024
  3. メガバイト=バイト/ 1024/1000

わかりました、#3は完全に間違っていると思いますが、私はそれを見てきました。 #2は正しいと思いますが、どのメガバイトが真のメガバイトであるかを明確にするために、尊敬される機関(W3C、ISO、NISTなど)を探しています。誰もこの計算がどのように行われるかを明示的に説明するソースを引用できますか?

ボーナス質問:#2がメガバイトの場合、#1と#3は何と呼ばれますか?

ところで:ハードドライブメーカーはこのメーカーの権威として数えていません!

96
User1

従来はメガバイト単位で、2番目のオプションを意味します-1メガバイト= 220 バイト。しかし、メガは1 000 000を意味するため、実際には正しくありません。2の新しい標準名があります。20 バイト、それはメビバイト( http://en.wikipedia.org/wiki/Mebibyte )であり、人気を集めています。

107
Andrey

用語を区別する IEC規格 があります。メビバイト= 1024 ^ 2バイト、メガバイト= 1000 ^ 2(キログラムのようなSIユニットと互換性があるため、k/M/...は1000/1000000を意味します)。実際、IT分野のほとんどの人はメガバイト= 1024 ^ 2を好み、ハードディスクメーカーはメガバイト= 1000 ^ 2を好みます(ハードディスクのサイズは実際よりも大きいため)。

実際のところ、ほとんどの人はIEC標準(乗数1000)と従来の意味(乗数1024)に混乱しています。一般的に、人々が何を意味するのかを推測すべきではありません。たとえば、乗算器1000はほとんどの場合単位ビットで使用されるため、MP3の128 kBit/sは通常128000ビットを意味します。しかし、多くの場合、人々は2 MBit/sに等しい2048 kBit/sを呼び出します。

したがって、一般的なルールとして、ビット/バイト単位をまったく信用しないでください;)

23
AndiDog

ところで:ハードドライブメーカーはこのメーカーの権威として数えていません!

ああ、そうです(そして、彼らが S.I。 から仮定する定義は正しいものです)。関連する問題については、CodingHorrorの この投稿 を参照してください。

15

2で割る20の累乗、(1024*1024)バイト= 1メガバイト

1024*1024 = 1,048,576   
2^20 = 1,048,576
1,048,576/1,048,576 = 1  

同じことです。

11
Marie

これは標準(SI)が言っていることです:

http://physics.nist.gov/Pubs/SP330/sp330.pdf#page=34

3
AVB

答えは、#1はMegaプレフィックスの実際の意味に基づいて技術的に正しいことですが、(そして実際には常にあります)そのための数学は出てこないので、ベース2でニース、つまりコンピューターのカウント方法、したがって#2は人々が実際に使用するものです。

3
Grant Johnson

ユーザーが予想する計算を使用します。ユーザーは、ディスクやメモリなどに実際にあるバイト数を知りたいですか、それとも使用可能なスペースだけを気にしますか?その質問に対する答えは、どの計算が最も理にかなっているかを教えてくれます。

これは使いやすさの問題であるのと同じくらい正確な質問ではありません。ユーザーにとって最も役立つ計算を提供します。

2
Bryan Oakley

メガバイトは2 ^ 20バイトを意味します。技術的にはSIユニットとは一致せず、一部の人々は2 ^ 20を意味する新しい用語を思いついたことを知っています。それは重要ではありません。言語を「明確にする」ために言語を変更する努力は失敗する運命にあります。

ハードドライブの製造元はこれを使用して1,000,000バイトを意味します。これはSIでの意味であるため、技術的に嘘をついていません(実際は嘘ではありません)。それは嘘、いまいましい嘘、そしてマーケティングに該当します。

1
T.E.D.

一般に、バイナリデータサイズを参照するときに、10進数のSIプレフィックス(たとえば、キロ、メガ)を使用するのは間違っています(通常の使用法を除く)。あいまいで混乱を招きます。正確に言うと binary prefixes (例:1 mebibyte = 1 MiB = 1024 kibibytes = 2 ^ 20 bytes)を使用できます。他の人がバイナリデータに10進数のSIプレフィックスを使用する場合、意味を理解する前に詳細情報を取得する必要があります。

0
Steven Hultgren