几天前Z君从某店购得320GB硬盘一个,回家安装到电脑上之后,进入系统Z君发现其新硬盘竟然有20几个GB不翼而飞,于是惊呼:“店家真是欺人太甚,平白无故坑我20GB的空间。”在这则小故事里Z君真的被店家欺骗了麽?其实店家根本没有坑人,他卖给Z君的硬盘确确实实是320GB,那么为什麽Z君的电脑上却少了整整20GB呢?不翼而飞的20GB硬盘哪去了?这个问题得从比特世界说起,在我们现实世界中,K(kilo)表示1000,M(mega)则是100万,即1000*1000,G(giga)代表的是10亿,亦即1000*1000*1000;由于计算机使用的是2元计数,因此在比特世界中,K(kilo)不是表示1000,而是1024,亦即2^10,M(mega)则表示1024*1024,也即2^20,G(giga)代表的则是1024*1024*1024,亦即2^30。故事中Z君购买的硬盘320GB--厂家商家都是以现实世界的计量标准来标明硬盘大小的,而计算机根本不管商家厂家那一套标准,以它自己的比特世界标准计量。因为彼此间的计量单位不同,因此显示的数值也就不一样了。现实世界中的320GB在比特世界中却只有320*(1000/1024)=298.02GB,这就是Z君发现硬盘空间20GB不翼而飞的原因。
原本我以为经常用电脑的人都懂得这个常识,没有料到几天前在一个blog上还看到对此类事情的讨论,上文的故事也的确存在,只不过Z君发现硬盘空间少了之后,没有激动地去找店家理论,而是自己在google找到答案。其实会发生这种误会的状况,关键是因为在现实世界和比特世界中使用的单位没有作出区分(用的都是Kb、Mb、Gb、Tb等等),如果像摄氏温度和华氏温度那样各自使用不同的单位符号也就不至于出现误会了。也许是因为1000和1024差别不大,刚开始使用的人就没有特地的去把两者分开来表示,在数值比较小时,他们也确实没有多大差别,记得过去也常用2^10来代替1000用以计算或者证明一些问题,然而随着数值的不断增大,他们之间的差别就越来越明显了,Z君所遇到的差别达20GB就是一个例子。
No comments:
Post a Comment