将字节转换为兆字节

时间:2010-03-02 17:11:11

标签: math memory terminology units-of-measurement

我已经看到了三种从字节转换为兆字节的方法:

  1. 兆字节=字节/ 1000000
  2. 兆字节=字节/ 1024/1024
  3. 兆字节=字节/一千分之一千零二十四
  4. 好吧,我认为#3完全错了,但我已经看过了。我认为#2是正确的,但我正在寻找一些受人尊敬的权威(如W3C,ISO,NIST等)来澄清哪个兆字节是真正的兆字节。任何人都可以引用明确解释如何进行此计算的来源吗?

    奖金问题:如果#2是兆字节,那么#1和#3叫什么?

    BTW:硬盘驱动器制造商不会被视为此权限!

9 个答案:

答案 0 :(得分:104)

传统上以兆字节为单位表示您的第二个选项 - 1兆字节= 2 20 字节。但实际上它并不正确,因为mega意味着1 000 000.2个 20 字节有一个新的标准名称,它是mebibyte(http://en.wikipedia.org/wiki/Mebibyte)并且它收集普及。

答案 1 :(得分:23)

IEC standard区分术语,例如Mebibyte = 1024 ^ 2字节但是兆字节= 1000 ^ 2(为了与像SI这样的SI单位兼容,其中k / M / ...表示1000/1000000)。实际上,IT领域的大多数人会更喜欢Megabyte = 1024 ^ 2,硬盘制造商会更喜欢Megabyte = 1000 ^ 2(因为硬盘大小会听起来比他们大)。

事实上,大多数人都对IEC标准(乘数1000)和传统意义(乘数1024)感到困惑。一般来说,你不应该对人们的意思做出假设。例如,MP3的128 kBit / s通常意味着128000比特,因为乘法器1000主要与单位一起使用。但通常人们会将2048 kBit / s称为2 MBit / s - 令人困惑的呃?

因此,作为一般规则,根本不要信任位/字节单元;)

答案 2 :(得分:15)

  BTW:硬盘驱动器制造商不会被视为此权限!

哦,是的,他们这样做(他们从S.I.假设的定义是正确的)。在相关问题上,请参阅CodingHorror上的this post

答案 3 :(得分:9)

2除以20的幂,(1024*1024)字节= 1兆字节

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

这是一回事。

答案 4 :(得分:3)

以下是标准(SI)所说的内容:

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

答案 5 :(得分:2)

使用您的用户最有可能期望的计算。您的用户是否关心磁盘或内存中有多少实际字节,或者他们只关心可用空间?该问题的答案将告诉您哪种计算最有意义。

这不是一个精确的问题,而是一个可用性问题。提供对您的用户最有用的计算。

答案 6 :(得分:2)

答案是,#1在技术上是正确的,基于Mega前缀的真实含义,然而(并且在生活中总是有一个)数学上的数学并不是如此好在基数2,这是计算机如何计算,所以#2是人们真正使用的。

答案 7 :(得分:1)

兆字节表示2 ^ 20个字节。我知道技术上不与SI单位相关,并且有些人提出了一个新的术语来表示2 ^ 20。这些都不重要。改变语言以“澄清”事物的努力注定要失败。

硬盘驱动器制造商使用它来表示1,000,000字节,因为这就是它在SI中的含义,因此他们在技术上 他们没有说谎(实际上他们是)。这属于谎言,该死的谎言和营销。

答案 8 :(得分:0)

通常,在引用二进制数据大小时使用十进制SI前缀(例如千字节,兆字节)是错误的(偶然使用除外)。这是模棱两可的,会造成混乱。准确地说,您可以使用binary prefixes(例如1 mebibyte = 1 MiB = 1024 kibibytes = 2 ^ 20 bytes)。当其他人对二进制数据使用十进制SI前缀时,您需要在知道其含义之前获取更多信息。