最近,中国消费者协会的一篇文章指出:
北京市消协4日公布USB闪存盘比较试验结果。结果显示,消费者经常使用的金士顿、索尼等30种USB闪存盘普遍存在虚标容量问题,所有样品均未达到产品包装明示的容量,同时USB闪存盘产品的性能差异大,拷贝速度快慢差距悬殊。据北京市消协介绍,本次比较试验的样品由北京市消费者协会工作人员以普通消费者身份随机购买。样品来源涵盖北京市电器商场、超市、电子市场以及网络购物渠道,样品涉及30家企业生产或经销的标示存储容量为8GB和16GB的USB闪存盘产品。
北京市消协比较试验表明,在30个样品中,所有样品标称容量均与实际可使用容量不符,大部分样品的可使用容量在标称容量的93%以下。且企业未在产品包装或说明书中明示可使用容量,剥夺了消费者的知情权,消费者无法根据标称确定实际可使用的容量。
URL:http://tech.sina.com.cn/it/2012-01-05/01096600702.shtml
此新闻公布后,U盘厂商遭到大量消费者的声讨,声称U盘厂商没有道德,误导消费者。但是,事实真是如此吗?让我们通过一系列实例来揭开U盘容量之谜。
词头
国际单位制词头
在十进制,也就是日常生活中与一般的数学领域中,使用国际单位制词头来表示单位的倍数和分数。目前有20个词头。大多数是千的倍数或分数,也就是1000(103)。简单地说,国际单位制词头就是数字的简便写法。
比如说:我月薪1k元和我月薪1M元。首先,1k元读作1 kilo元;1M的读作1 Mega元,分别表示月薪1000元和月薪1000000元。
国际单位制词头由国际度量衡大会管理。每4-6年,都会与50多个成员国代表开会讨论有关问题。
二进制乘数词头
混淆的版本
而在二进制领域,有一套完全不同的计数标准,叫做二进制乘数词头。它采用2的乘幂而不是用10的乘幂。所有乘数词头都是1024(210)相乘而不是在国际单位制词头采用的1000(103)。
二进制乘数词头与国际单位制词头的读法与写法完全相同,
比如说,二进制中的1k表示1024而不是1000;1M表示1048576(1024×1024)而不是1000000(1000×1000)。就是由于这点,因此经常出现“是1000呢?还是1024?”的严重混淆,只能通过上下文来推断出其含义。
规范的版本(IEC版)
为了防止混淆,1999年,国际电工委员会(IEC)公布了新的二进制乘数词头版本,在这一版本中,二进制乘数词头与国际单位制词头的读法与写法开始不同。在二进制中1k、1M混淆的说法,变成了1Ki、1Mi,读法也变成了1 kibi、1 mebi,而不是1 kilo;1 Mega。
欧盟和美国电气电子工程师协会(IEEE)都使用此标准作为官方标准。
度量
在计算机中,容量的最小单位是比特(bit)。但是由于bit是在太小,甚至一个英文字母(最简单的一份数据)要用掉8bit的空间,汉字更甚,要用16bit的空间。如果用这个单位来表示文件大小,实在不便。由于保存一份最简单的数据要用8bit,那好,那就定义一种新的单位吧:Byte。一Byte就等于8bit——一份最简单的信息所占的空间,而且可以缩写成b。但是byte也实在太小,因此总得有更高级的单位吧!
怎么办呢?凭空创造新的单位实在是难以让人接受。有了!把它与国际单位制词头结合在起来是个不错的主意。组合之后,就有了1kb、1MB这样的组合,分别代表1000byes和1000000bytes(为什么多了个s?英文复数要加s哦)。
但是这样做,后来出现的软件工程师们不干了!你是把byte和十进制的词头组合到一起的,但是对于软件使用的是二进制啊!难道我们天天做换算不成??!!不可能啊!因此,人们就又将二进制乘数词头和byte组合而成,又成了新的1kb、1MB这样的组合,分别代表1024byes和1048576bytes。
使用
好了,现在两种组合方式总算定出来了?什么情况下用十进制版本,什么情况下用二进制版本呢?由于大部分生产硬件的,都是在和电路板、电子管、晶体管这样的看得见的电子设备打交道,这些电子设备的容量、速度原则上不能使用二进制度量,因此使用的也就是十进制的版本;但是做软件的,成天和什么十六进制、八进制、二进制打交道,而且软件中的容量原则上也不能使用十进制度量,因此自然使用二进制版本。
而这些硬件、软件在出售时,自然也使用各自的两套标准。因为这时候IEC的规范标准离出台还远着呢?十进制和二进制的写法读法根本没区别,如果你不研究研究,谁也不知道你用的是哪个标准。
什么硬件可以用二进制度量,什么硬件可以用十进制度量?
1.硬盘只能用十进制度量,因为硬盘的最小物理单位为512bytes,最小的组成单位为扇区(sector), 通常硬盘容量的计算采用“多少个sector”,所以才会使用十进制来处理。这种十进制度量的方式历史悠久,世界上第一块硬盘就是用的是这种度量方式,那时候,国际单位制词头甚至还不存在!
2.闪存盘,同时包括各种储存卡、手机内部储存、固态硬盘与固态储存器,都是用十进制度量。虽然是这样,但是由于它们的性质,十进制容量一般是2的倍数。
3.CD、DVD的度量方法不同,CD使用二进制度量,而DVD使用十进制度量,可能有什么鲜为人知的原因才会这样。
4.内存条、各种储存芯片,例如ROM、RAM,包括BIOS芯片等,只能使用二进制度量,因为它们天生就用这种计算方法。你买的512MB内存,电脑肯定会照样这么显示,永远不会“缩水”。
5.网速用十进制表示。但是,虽然网速都用十进制表示,却还有两种形式:第一种形式是几kb一秒,比如:100kb/秒、1MB/秒,下载文件时通常用这种方式来表示速度。
但是第二种形式就玄乎了,首先它居然是用前面提到的,计算机中最小的单位bit来计算,而不是用Byte(b)来计算。而且,它还使用十进制来计算,把bit和国际单位制词头又结合在一起。看来,除了有将国际单位制词头和byte结合在起来;将二进制乘数词头和byte组合,还有把bit和国际单位制词头又结合在一起。
乖乖,正如我前面所说的,8bit才等于1byte。因此,换算成以byte计算的速度,需要除以8。如果“我家是8M宽带”,那么下载速度就是8M÷8=1M/秒。如果“我家是1M宽带”,那么下载速度只有500k/秒。
系统怎么办?
不管能不能用二进制来度量,操作系统在多数情况下都会一律将它显示成二进制的形式,因为它是软件嘛,善于用二进制。例如说:8GB U盘改用二进制度量就变成了7GB多一些;1TB硬盘变成了约900GB;但是内存由于是二进制买的是多少还是多少。而网速呢?其实网速计算一般只用玄乎的第二种,第一种也是操作系统显示出来的。而Linux和Mac OS X有时则会使用十进制的度量法。
6.U盘到底能用多少空间?
2GB的U盘,能够使用的容量究竟有多少?由于U盘使用的是十进制的计算方式,操作系统愣是把它转换成了二进制,就已将有一些损失了,再加上格式化之后(不格式化怎么用),文件系统本身也要占用一些空间,包括扇区大小等都会影响其可用容量。因此,2GB U盘最终能使用的容量就只有约1.8GB左右了。
因此,消协的“U盘缩水”完全不是欺骗消费者。