计算机中遇到的单位该怎么换算
在计算机行业经常进行单位换算,这些单位到底该怎么换算,通过本文来说明一下。
** bit **
bit 是字长,意思是一个字所包含二进制输的位数,一个 bit 存放一位二进制数,即 0 或 1,最小的存储单位,简写为 b 。字长越长,运算速度越快,计算精度越高
** byte **
byte 是字节,计算机中处理信息的最小单位,以八位二进制信息,简写为 B 。
byte 和 bit 之间的换算是 8 ,原因是一个字节需要 8 个字长
** K M G T P E 是什么**
K M G T P E 等是国际单位制(SI)中所规定的词头(prefix)。词头加在 SI 单位(非 SI 单位也可以使用并通常遵循此用法)之前表示 10 的整数幂次,譬如 k 表示 10^3=1000,M 表示 10^6=1,000,000,G 则表示 10^9=1,000,000,000.
举些例子,1kg=1000g,1km=1000m, 都是大家所熟悉的用法 。
那我们接下来看这些单位怎么换算。
CPU 主频单位换算
在计算机的使用过程中,我们会经常用到 CPU 的主频,那么主频是怎么换算呢?
所谓 CPU 的主频,就是说这块 CPU 的工作频率,也就是说这块 CPU 是在以哪个频率在进行运算处理。CPU 的工作频率单位是以 Hz(赫)计量,随着科技发展,CPU 的制造工艺越来越先进,其主频也得到大幅度提升。现今,虽然 CPU 主频的计量单位 Hz(赫)没变,但我们往往都会在单位前面加上 M,甚至 G,也就是我们常说的主频 MHz(兆赫)和 GHz(吉赫)。
对于 CPU 来说,除了主频以外还有更重要的一个参数叫做浮点性能,有单精度和双精度,个别情况下会用到半精度,他们的单位是 FLOPS,那么浮点性能的单位怎么换算呢?
相邻两个单位之间的进制 1000 。
速率单位换算
我们在下载文件或者拷贝数据时经常用到一个单位 Mbps 来描述数据拷贝的快慢或者网络带宽的大小,这个 Mbps 的意思是 Mb 每秒,及在一秒内可以传输的数据量为多少 Mb ,p 的 per 的简写。
我们在一些提供下载功能的软件里经常可以看到下载是数据是 MB/s ,那么这个单位和上边的 Mbps 有什么区别呢?
区别有两点
表示方法不统一。也就是说,二者同样的表示方式应该是 Mbps 和 MBps 或者 Mb/s 和 MB/s 。
b 和 B 的区别。这个我们在最开始的时候说过了,一个是字节一个是字长。
那么他们应该这么换算呢?
这样就清楚了,我们一般口头说的网络带宽的单位一般是 Mb/s , 下载文件和拷贝文件的单位一般是 MB/s , 下次我们就可以自己换算一下了。
存储单位换算
我们经常看到的存储单位有 KB、MB、GB、TB、PB 等,这些单位在计算机操作系统内的换算情况是这样的
在硬盘厂商的宣传里是这样的
造成这种差异的原因是,起先计算机的存储容量低到可怜,几千个 Byte 算是很奢侈的容量,由于计算机的二进制特性,这个容量通常是 2 的整数次幂,用起来不方便。IT 工程师们发现 2^10=1024 与 k=10^3 接近,相差不过 2%。于是就有人偷懒以 1kB 表示 2^10B 也就是 1024B,初看起来一切都好,2% 的差距并不大,时间长了大家也就接受了。
但问题在于,随着计算机的存储容量依摩尔定律(Moore’s Law)以指数增长,这个差值会越来越大。1kB 与 1KiB(稍后解释)相差不过 2%,1MB 与 1MiB 相差近 5%,1GB 与 1GiB 相差 7%,1TB 和 1TiB 足足差了 10%。可以预见,随着硬盘容量的进一步扩大,这个差别会越来越大。
时至今日,在 IT 业中已经形成了这种混乱的局面,为了解决这个混乱的局面,还是有人做过努力。早在 1998 年 SI 手册中明确要求 SI 词头不应用于 2 的幂次。而同年国际电工委员会(IEC)推出了一套适用于 2 进制的词头,并且得到了 IEEE 的批准 (IEEE 1541)——不过这还是一个试用的标准。简单来说就是在 SI 词头后加"i"。比如说 K 就成了 Ki,M 成了 Mi,G 成了 Gi。发音把原来 SI 词头的第二个音节换成[bi]。譬如 Ki 念 [kibi],Mi 念[mebi],Gi 则是[Gibi]等等依此类推。这样,kMG 之类的的 SI 词头回复原来的含义,表示 2 幂次重任就交给了 Ki= 2^10=1024,Mi=2^20=1048576,Gi=2^30=1073741824 等等。这么一来,当表述一台电脑是 3.15GHz CPU/2GiB 内存/320GB 硬盘时,G/Gi 的含义就不存在歧义。
很简明易懂的解决方案,然而很不幸似乎买 IEC 帐的着实不多,目前支持 IEC 词头的软件屈指可数。更糟糕的是 1G=1024M 这种约定俗成的错误观念已经根深蒂固。
进制的选择依据
看了上边各项单位的换算,不知道大家有没有发现什么规律。
在计算机里相邻两个单位之间的换算有 1000 和 1024 ,那么什么时候是 1000,什么时候是 1024 ?
其实,一般的换算按照国际单位制(SI) 的规定,相邻两个单位之间的换算是 1000 。
那么什么时候用 1024 呢?
那就是单位里含有 byte 或者 bit 的时候,用 1024 来进行换算。其实按照 IEC 的规定,使用 Mi 和 M 进行区分就不会有这样的歧义和疑惑了。
版权声明: 本文为 InfoQ 作者【耳东】的原创文章。
原文链接:【http://xie.infoq.cn/article/152ef7544897b4d2c6d3804da】。未经作者许可,禁止转载。
评论