我看到有三种将字节转换为兆字节的方法:
- 兆字节=字节/1000000
- 兆字节=字节/1024/1024
- 兆字节=字节/1024/1000
好的,我认为#3是完全错误的,但我已经看到了这个方法。我认为#2是正确的,但我正在寻找一些权威机构(例如W3C、ISO、NIST等)来澄清哪个兆字节才是真正的兆字节。有人可以引用明确解释如何进行此计算的来源吗?
额外问题:如果#2是一个兆字节,那么#1和#3叫什么?
顺便说一句:硬盘制造商在这方面不算权威!
我看到有三种将字节转换为兆字节的方法:
好的,我认为#3是完全错误的,但我已经看到了这个方法。我认为#2是正确的,但我正在寻找一些权威机构(例如W3C、ISO、NIST等)来澄清哪个兆字节才是真正的兆字节。有人可以引用明确解释如何进行此计算的来源吗?
额外问题:如果#2是一个兆字节,那么#1和#3叫什么?
顺便说一句:硬盘制造商在这方面不算权威!
传统上,我们通常认为1兆字节等于220字节,但实际上这是不正确的,因为“兆”表示1,000,000。现在已经有一个新的标准名称来表示220字节,它被称为“Mebibyte”(http://en.wikipedia.org/wiki/Mebibyte),并且它越来越受欢迎。
有一个IEC标准区分了这些术语,例如,Mebibyte = 1024^2字节,而Megabyte = 1000^2(为了与千克等SI单位兼容,其中k/M/...表示1000/1000000)。实际上,大多数IT领域的人们更喜欢Megabyte = 1024^2,而硬盘制造商则更喜欢Megabyte = 1000^2(因为硬盘大小会听起来比它们实际上更大)。
事实上,大多数人都被IEC标准(乘数为1000)和传统含义(乘数为1024)所困惑。一般情况下,您不应该对人们的意思做出假设。例如,MP3的128 kBit/s通常表示128000位,因为乘数1000在大多数情况下与单位bit一起使用。但是经常会有人把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
它是同样的事情。
将字节转换为兆字节(MB),请使用 totalbyte/1000/1000
将字节转换为二进制兆字节 (MiB),请使用 totalbyte/1024/1024
使用与用户最有可能期望的计算方式。您的用户关心知道磁盘或内存中实际字节数量吗?还是只在意可用空间?这个问题的答案将告诉您哪种计算方法最有意义。
这不是一个精度问题,而是一个易用性问题。提供对于您的用户最有用的计算方法。
一般来说,在涉及二进制数据大小时,使用十进制SI前缀(例如kilo、mega)是错误的(除非在非正式用途中)。这会造成歧义和混淆。为了精确,可以使用二进制前缀(例如1 mebibyte = 1 MiB = 1024 kibibytes = 2^20 bytes)。当其他人在二进制数据中使用十进制SI前缀时,您需要获取更多信息才能知道其含义。
微软Windows资源管理器在“属性”窗口中显示文件大小。这是使用2^20进行字节计数转换的结果。