将字节转换为兆字节


103

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

  1. 兆字节=字节/ 1000000
  2. 兆字节=字节/ 1024/1024
  3. 兆字节=字节/ 1024/1000

好的,我认为#3完全错误,但是我已经看到了。我认为#2是正确的,但是我正在寻找一些受人尊敬的权威机构(例如W3C,ISO,NIST等)来澄清哪个兆字节是真正的兆字节。谁能引用明确说明此计算过程的来源?

额外的问题:如果#2是兆字节,那么#1和#3分别是什么?

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


3
硬盘驱动器制造商确实是这方面的权威,因为他们使用兆字节来表示#1意识正在推动人们接受这种转换。请注意,尽管如此,Microsoft操作系统仍使用#2。
Michael Petrotta 2010年

3
#3 应该称为软盘兆字节。3½英寸的软盘因使用此功能而著称(我不记得在其他任何地方看到过它)。
Michael Madsen

15
和强制性的:xkcd.com/394
Seva Alekseyev 2010年

4
真是的 在这种编码与文本编码之间,有时我会对我们将最复杂的事物添加到最基本的事物上的无误能力感到失望。
Paul D. Waite'3

4
硬盘制造商最有可能使用#1来获得最高数量。对于GB,差异为7%,对于TB,差异为10%。
彼得·莫滕森

Answers:


115

传统上以兆字节为单位表示您的第二个选择-1兆字节= 2 20字节。但这实际上是不正确的,因为mega表示1 000000。有一个新的标准名称,表示2 20字节,即兆字节(http://en.wikipedia.org/wiki/Mebibyte)并且它受到欢迎。


10
我同意所有这一切,除了暗示它正在流行很多。1024 = K和朋友的心态是无敌的。当您让人们开始说“ cracker”而不是“ hacker”时,请回到我身边。
TED

5
不想为异端的“兆字节”提起表决,但需要付出很多努力。
aehiilrs

3
@TED:实际上,用“黑客”来表示“饼干”是流行文化超越了极客所喜欢的用法的完美示例。
Michael Petrotta

2
我个人认为mebibyte越来越受欢迎,可能是我错了。我在MiB和KiB中看到了一些颇受欢迎的下载站点大小。
安德烈(Andrey)2010年

1
好吧,我同意你的看法,我也使用10碱基对的mega和2碱基对的kibi和mebi。这是用于度量标准的IEC标准:这是最终的,没有任何用处。
Zan Lynx 2010年

27

有一个IEC标准可以区分这些术语,例如,兆字节= 1024 ^ 2字节,但兆字节= 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-令人困惑吗?

因此,作为一般规则,完全不信任位/字节单位;)


17

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

哦,是的,他们确实这样做了(他们从SI假设的定义是正确的)。有关相关问题,请参阅CodingHorror上的这篇文章


4
不好意思,不管程序员怎么想,他们对Mega IS的定义都是正确的。我可以忍受M = 2 ^ 20,很好,但这只是出于历史原因。
Federico A. Ramponi 2010年

+1代表高清公司和SI标准的热情代表,反对其他所有人!
杰弗里·惠特里奇

11
感谢Jeffrey :),但不仅仅是高清公司:您的CPU的工作频率为2600 MHz;您的数学处理器执行XY Mflops;以太网速度为100 Mbit / s;您的相机的像素为5 Mpixel;蓝光的1倍速度为36 Mbit / s ...所有这些“ M”代表10 ^ 6,而不是2 ^ 20。
Federico A. Ramponi 2010年

-1我不确定我是否遵循此答案。其中硬盘驱动器制造商提出的定义?我不认为CodingHorror生产硬盘吗?我正在寻找授权机构,而硬盘驱动器制造商将有太多偏见以致于无法客观。
User1 2010年

1
支持M = 10 ^ 6的“权威”是国际度量衡局。据我所知,除了风俗习惯,没有“授权”支持M = 2 ^ 20。
Federico A. Ramponi

16

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

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

是同一回事。



3

答案是,根据Mega前缀的实际含义,#1在技术上是正确的,但是,(在生活中总会有一个)在基数2中得出的数学结果不是那么好,这就是计算机的计数方式,所以#2是人们真正使用的东西。


2

使用您的用户最有可能期望的计算。您的用户是否想知道磁盘或内存中的实际字节数是多少,还是只在乎可用空间?该问题的答案将告诉您哪种计算最有意义。

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


1

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

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


0

通常,在引用二进制数据大小时使用十进制SI前缀(例如,千,兆)是错误的(在临时用法中除外)。它含糊不清并引起混乱。确切地说,您可以使用二进制前缀(例如1兆字节= 1 MiB = 1024兆字节= 2 ^ 20字节)。当其他人为二进制数据使用十进制SI前缀时,您需要获取更多信息,然后才能知道含义是什么。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.