将字节转换为兆字节

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

  1. 兆字节=字节/百万
  2. 兆字节=字节/ 1024/1024
  3. 兆字节=字节/一千分之一千零二十四

好吧,我认为#3是完全错误的,但我已经看到了。 我认为#2是正确的,但我正在寻找一些受人尊敬的权威(如W3C,ISO,NIST等)来澄清哪兆字节是一个真正的兆字节。 任何人都可以引用一个明确解释如何完成这个计算的来源吗?

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

顺便说一句:硬盘制造商不算在这方面的权威!

传统的兆字节我们的意思是你的第二个选项 – 1兆字节= 2 20字节。 但实际上这是不正确的,因为巨大的意思是1 000 000.有一个新的标准名称为2 20字节,这是mebibyte( http://en.wikipedia.org/wiki/Mebibyte ),它收集人气。

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

事实上,大多数人都被IEC标准(乘数1000)和传统意义(乘数1024)混淆了。 一般来说,你不应该假设人们的意思。 例如,对于MP3,128 kBit / s通常意味着128000位,因为乘法器1000主要与单位位一起使用。 但是,经常有人呼叫2048 kBit / s等于2 MBit / s – 令人困惑的是,

所以一般来说,不要相信比特/字节单位;)

顺便说一句:硬盘制造商不算在这方面的权威!

噢,是的,他们这样做了(他们从SI中的定义是正确的)。 在相关的问题上,请参阅CodingHorror上的这篇文章 。

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

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

这是一样的事情。

这是标准(SI)所说的:

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

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

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

硬盘制造商使用它来表示1,000,000个字节,因为这就是SI的意思,所以他们从技术上来说并不是说谎(实际上他们是)。 那属于谎言,该死的谎言和营销。

使用用户最可能期望的计算。 用户是否在意磁盘或内存中有多less实际字节,或者只关心可用空间? 这个问题的答案会告诉你哪个计算最有意义。

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