我见过三种将字节转换为兆字节的方法:
- 兆字节=字节/1000000
- 兆字节=字节/1024/1024
- 兆字节=字节/1024/1000
好的,我认为#3 是完全错误的,但我已经看到了。我认为#2 是正确的,但我正在寻找一些受人尊敬的权威(如 W3C、ISO、NIST 等)来澄清哪个兆字节是真正的兆字节。任何人都可以引用明确解释此计算如何完成的来源吗?
额外的问题:如果 #2 是兆字节,那么 #1 和 #3 叫什么?
顺便说一句:硬盘制造商不能算作这方面的权威!
我见过三种将字节转换为兆字节的方法:
好的,我认为#3 是完全错误的,但我已经看到了。我认为#2 是正确的,但我正在寻找一些受人尊敬的权威(如 W3C、ISO、NIST 等)来澄清哪个兆字节是真正的兆字节。任何人都可以引用明确解释此计算如何完成的来源吗?
额外的问题:如果 #2 是兆字节,那么 #1 和 #3 叫什么?
顺便说一句:硬盘制造商不能算作这方面的权威!
传统上,兆字节是指您的第二个选项—— 1 兆字节 = 2 20字节。但实际上并不正确,因为 mega 的意思是 1 000 000。对于 2 20字节有一个新的标准名称,它是 mebibyte ( http://en.wikipedia.org/wiki/Mebibyte ),它越来越受欢迎。
有一个区分这些术语的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 - 令人困惑是吗?
因此,作为一般规则,根本不信任位/字节单位;)
除以2
,20
字节(1024*1024)
=1
兆字节
1024*1024 = 1,048,576
2^20 = 1,048,576
1,048,576/1,048,576 = 1
这是同样的事情。
答案是,根据 Mega 前缀的真正含义,#1 在技术上是正确的,但是(在生活中总是有一个然而)在基数 2 中的数学计算并没有那么好,这就是计算机的计数方式,所以#2是人们真正使用的。
使用您的用户最有可能期望的计算。您的用户是否关心磁盘或内存中的实际字节数或其他什么,或者他们只关心可用空间?该问题的答案将告诉您哪种计算最有意义。
这不是一个精度问题,而是一个可用性问题。提供对您的用户最有用的计算。
兆字节表示 2^20 字节。我知道从技术上讲这与 SI 单位不相符,而且有些人提出了一个新术语来表示 2^20。这些都不重要。改变语言以“澄清”事物的努力注定要失败。
硬盘驱动器制造商使用它来表示 1,000,000 字节,因为这就是 SI 中的意思,所以他们认为从技术上讲他们并没有说谎(实际上他们确实在说谎)。这属于谎言、该死的谎言和营销。
通常,在提及二进制数据大小时(除了随意使用),使用十进制 SI 前缀(例如,千、兆)是错误的。这是模棱两可的,会引起混乱。准确地说,您可以使用二进制前缀(例如 1 mebibyte = 1 MiB = 1024 kibibytes = 2^20 bytes)。当其他人对二进制数据使用十进制 SI 前缀时,您需要获取更多信息才能知道其含义。