» 您尚未登录:请 登录 | 注册 | 标签 | 帮助 | 小黑屋 |


 21 12
发新话题
打印

[电脑] SI / Binary Prefix 1MB = 1024KB? 单位混乱的一些研究 万恶的微软你为什么还不改!

我有一个 2GB 的 U 盘
在 Linux 上显示 1.88 GiB 正确
在 Mac 上显示 2.02 GB 正确

只有在 windows 上才会显示 1.88 GB (错误)

======================================================================================
个人分析 公制单位头 和 二进制头产生 混淆的原因:

首先 大家应该知道 公制单位把
比如 Meter(米) Gram(克) 这种... 生活中常用单位.
但这里有个问题 大家使用的其实是国际单位的!中文译名! 因为译名所以导致大家对国际单位的不了解

大家先看看这个表格


si_prefix_en by beterhans, on Flickr


si_prefix_cn by beterhans, on Flickr

你可以看到 K M T 这些前缀 是日常使用中常见的. 并不是计算机界独有的

比如说 Km (1000米)也被翻译成 公里 比如 Kg (1000克)被翻译成公斤. 那么其实 还有 Gm(1000个1公里 没有翻译) Gg(翻译成'吨') 但是 没有 Tg(1000Gg) 的翻译 或是不常用.
汉语里 我能想到的长度单位最大的只有 Km 公里了. 是吧. 但其实国际公制单位并不是没有更大的单位 只是中文没有翻译 Mm (兆米)而已!

那么你知道了这些 K M G T ... 的公制前缀后就应该知道 他们都是 10 的 x 次方 也就是 1000 近位的.

那么在看看计算机界.
计算机界的存储容量 有 2 个基准单位 一个是 byte(字节) 用大B 表示 一个是 bit 用小b 表示
我们这里只讨论 byte(字节) 这是基准容量单位 好比 长度的 米 质量的 克
那么套用公制单位的前缀 很自然的可以得出 KB GB TB (而且他们没有中文翻译! 你们直接看到了 公制单位的前缀 所以有些人认为 K G B T 这些是和计算机有关的, 和其他单位无关.).... 等你我常见的单位. 那么公制单位里 1GB = 1000MB = 1000,000 KB

但为啥课本上写 1MB = 1024KB? 颠覆了整个公制单位系统?
这个很多人知道 1024 因为计算机使用 2 进制 在早年计算机能力有限的年代 十进制转换 算起来麻烦, 干脆就定义了 1024 这个值. (1970 年开始貌似)
但这一改 就导致了一系列的误解. 和单位的不统一. 比如 IBM 第一个硬盘使用了 1000 进位的方式发布. 所以硬盘 外存贮 由于历史原因都是用 1000 进位的方式公布的. (所以说 某人说硬盘厂家联合起来偷换概念欺骗消费者这个说法是不正确的)
但内存和计算机核心相关的地方, 因为换算方便的需求 都是用 1024 进位的. 也是历史原因.
这个问题除非你是业内 很难了解清楚. 到底什么地方用 1000 进制 公制单位 什么地方是 1024 进位的奇怪单位?

1999 年为了解决这个混乱的问题 IEC 国际电工委员会 发布了新的标准 使用 Ki Gi Ti 来表示 1024 进位的 单位.
也就是说 从 1999 年起你就有了新的单位 1MiB = 1024KiB 这种正确的写法. 1MB = 1000KB 理论上就不会再混淆了.


但是这个 混乱已经习惯成自然 被大量的人使用, 要改变很难 虽然它混乱,但是开发者都不以为然 因为这个混乱并不会造成计算机内部因为单位显示混乱而造成计算出错. 因为计算机内部 始终都是 基准单位存储的 这些 K G T / Ki Gi Ti 只是为了方便人阅读加上去的计算机自己不看. 它无所谓.

混乱正在改变!
苹果 Apple 公司的 操作系统 OSX 在 10.6 以后开始使用 正确 的 1000 进位的公制单位显示驱动器大小 1TB = 1000BG
流行 Linux 发行版本 Ubuntu 在最新规则中 https://wiki.ubuntu.com/UnitsPolicy 规定 APP 作者 要么使用 SI Prefix 1MB = 1000kB 要么 Binary Prefix 1MiB = 1024KiB 不得使用以前那种混乱的标法
这些都是让人欣喜的改变 虽然这个改变看似很小 但我个人为人 很有必要
但 微软 Microsoft 在他们的 Windows 中依然没有任何迹象表明他们愿意改变这个混乱的局面.



当前的混乱潜规则: (什么领域使用什么单位)

那么现在有2中正确单位 和一种历史错乱单位
他们是
SI Prefix (公制单位) 1GB  = 1000MB
Binary Prefix (IEC 单位) 1GiB = 1024MiB
历史错误单位 1GB = 1024MB


电脑操作系统
Apple OSX 在 10.6 以后 在显示驱动器大小的时候配合 硬盘厂家 使用 SI prefixes (公制单位) 1000 进位
Linux 部分软件开始 使用 IEC Kib Gib 这样的 二进制单位
但大多数地方包括 windows 依然使用历史错误单位

软件
不使用历史错误单位的软件 非常少

电脑硬件
内存 ROM RAM 都是用 历史错误单位 就是说 内存厂家表 1GB 内存 其实是 1GiB 的内存.      

硬盘 U 盘 大家知道 他们使用 SI 公制单位 1000 进位 1TB 硬盘 只是 1TB 硬盘...

软盘 1.44MB 是历史错误单位 其实是 1.44MiB

光盘
CD 使用历史错误单位 一张 80 分钟的 CD 标称容量是 700MB 其实是 700MiB 真实 公制单位 是 730MB
DVD BD 使用 SI 公制单位标称 4.7GB D5 就是 4.7GB 换成 4.38GiB

速率 和 时钟
1GHz CPU 就是 每秒  1,000,000,000 下运算 是 SI 公制单位
44.1 kHz 的 MP3 就是 44100 个采样点 一秒
128 kbit/s 的 MP3 就是每秒使用 128000 bits 每秒 SI 公制单位
56K 的猫 2M 的宽带 100M 的网线 他们都是 SI 公制单位 (特例 电信为了降低投诉 你明明申请 2M它可能实际开的是 2.4M 这个要看地方)

[ 本帖最后由 beterhans 于 2012-3-30 16:23 编辑 ]
附件: 您所在的用户组无法下载或查看附件


本帖最近评分记录
  • ggggfr 激骚 +1 最骚 Rated by wap for mark 2012-3-31 10:22
  • moogle 激骚 +1 最骚 Rated by wap for mark 2012-3-31 09:39

TOP

谁让WINDOWS用的人最多,应用最广泛呢,只能这样了



TOP

posted by wap, platform: iPhone

问问他们为什么窃取1024的gb称号,再给1024加个gib的头衔,为什么偏向硬件厂商的十进制算法不用gib这种标号,还不就是为了忽悠消费者!


TOP

楼主截张win的图看一下,貌似win的字节显示也是正确的。

TOP

引用:
原帖由 于 2012-3-29 23:08 发表
楼主截张win的图看一下,貌似win的字节显示也是正确的。
字节 是 基准单位 当然是正确的 要不准确 都难.
1 KiB = 1024 Byte
1 KB = 1000 Byte

TOP

引用:
原帖由 仲晓萌 于 2012-3-29 23:06 发表
posted by wap, platform: iPhone

问问他们为什么窃取1024的gb称号,再给1024加个gib的头衔,为什么偏向硬件厂商的十进制算法不用gib这种标号,还不就是为了忽悠消费者!
如果你一定认为这是 欺诈消费者 那么 我支持你维权 只是你要搞的组织比较夸张

他们是
International Electrotechnical Commission 国际电工委员会 也即是倡导 1024 近位的组织
International Bureau of Weights and Measures 国际度量衡局 也就是 倡导 1000 进位的组织.

TOP

就是习惯用法咋的了。非要加一个字母出来符合标准干啥。

TOP

引用:
原帖由 于 2012-3-29 23:08 发表
楼主截张win的图看一下,貌似win的字节显示也是正确的。
WIN7 的图
附件: 您所在的用户组无法下载或查看附件

TOP

posted by wap, platform: Meizu (M9)

没听说过gib这种标法

TOP

引用:
原帖由 ylgtx 于 2012-3-29 23:37 发表
posted by wap, platform: Meizu (M9)

没听说过gib这种标法
http://zh.wikipedia.org/wiki/Binary_prefix
阅读 用户的困惑 那部分

TOP

别人问LZ内存多大,一定要说8Gi,千万别漏了个i,漏了就错了,不能再缩了。

TOP

引用:
原帖由 wtq 于 2012-3-30 00:00 发表
别人问LZ内存多大,一定要说8Gi,千万别漏了个i,漏了就错了,不能再缩了。
虽然你是在嘲笑我 但是你的答案是正确的. 单位 度量恒 就是用来 测量 精准的。 如果一个单位无法精准 还有啥意义? 虽然作为普通用户你不纠结 也没事 但某些领域还是需要精确的.
其实在有人提出质疑前 我也不知道是这么一回事 是自己去查了以后才知道的 这样科普以下有什么值得嘲笑的?
单位混淆 已经 有 3起法律诉讼 1 起就是针对  U盘企业 2起 是针对硬盘 企业 真有人去告的! (wiki 信息)

========================================================
那么我们来看看目前 混乱的单位使用情况吧...

偶就翻译下 WIKI 里面对于 目前市场上 混乱的 单位应用的情况

常识 3 种单位
KB GB TB Kg M km 这种 1000 进位的叫做 SI prefixes (公制单位) 所以 1KB = 1000 Byte(字节) 1km(公里) = 1000m(米)
IEC(国际电工协会) 单位 Kib Gib Tib 2 进制 单位 1024 进位. 1KiB = 1024 Byte
历史错误单位 无名 1MB= 1024Kb 这种... 1GB = 1024MB 这种... 使用公制单位符号表示 IEC 的值

例子:
如果某人说 我这个文件 104KB 那么你怎么知道 这个文件到底多少大? 你没法知道... 因为 他没告诉你这个 K 是 历史错误单位  还是 公制单位. 除非你非常了解 潜规则

各种单位在现实中的应用 也就是 !!!!!!!!!潜规则!!!!!!!!!!

电脑操作系统
Apple OSX 在 10.6 以后 在显示驱动器大小的时候配合 硬盘厂家 使用 SI prefixes (公制单位) 1000 进位
Linux 部分软件开始 使用 IEC Kib Gib 这样的 二进制单位
但大多数地方包括 windows 依然使用历史错误单位

软件
不使用历史错误单位的软件 非常少
Software that uses IEC binary prefixes for powers of 1024 and uses standard SI prefixes for powers of 1000 includes:
GNU Core Utilities[95]
Flyspray[96]
bugs.mysql.com[97]
GParted[98]
DFSee[99]
disktype[100]
raidutil[101]
FreeDOS-32[102]
ifconfig[103]
GNOME Network[104]
SLIB[105]
Cygwin/X[106]
HTTrack[107]
Pidgin (IM client)[108]
Deluge[109]
zFTPServer[110]
yafc[111]
tnftp[112]
WinSCP[113]
MediaInfo[114]

电脑硬件
内存 ROM RAM 都是用 历史错误单位 就是说 内存厂家表 1GB 内存 其实是 1GiB 的内存.        

硬盘 U 盘 大家知道 他们使用 SI 公制单位 1000 进位 1TB 硬盘 只是 1TB 硬盘...

软盘 1.44MB 是历史错误单位 其实是 1.44MiB

光盘
CD 使用历史错误单位 一张 80 分钟的 CD 标称容量是 700MB 其实是 700MiB 真实 公制单位 是 730MB
DVD BD 使用 SI 公制单位标称 4.7GB D5 就是 4.7GB 换成 4.38GiB

速率 和 时钟
1GHz CPU 就是 每秒  1,000,000,000 下运算 是 SI 公制单位
44.1 kHz 的 MP3 就是 44100 个采样点 一秒
128 kbit/s 的 MP3 就是每秒使用 128000 bits 每秒 SI 公制单位
56K 的猫 2M 的宽带 100M 的网线 他们都是 SI 公制单位 (特例 电信为了降低投诉 你明明申请 2M它可能实际开的是 2.4M 这个要看地方)
本帖最近评分记录
  • Crusher 激骚 +1 最骚 Rated by wap 2012-3-30 07:36

TOP

posted by wap, platform: Nokia (E71)

那贴里楼主被群嘲是因为动机

TOP

改成科普贴了................... :D

TOP

posted by wap, platform: ZTE

科普毛啊,99年才出的计量单位,要不是硬盘厂坚持10进制引起混乱了恐怕还不会出这东西。还张口错误,不理采是正常的,lz你是卖硬盘还是卖苹果的。

TOP

 21 12
发新话题
     
官方公众号及微博