写点什么

计算机中遇到的单位该怎么换算

用户头像
耳东
关注
发布于: 5 小时前

在计算机行业经常进行单位换算,这些单位到底该怎么换算,通过本文来说明一下。


** bit **


bit 是字长,意思是一个字所包含二进制输的位数,一个 bit 存放一位二进制数,即 0 或 1,最小的存储单位,简写为 b 。字长越长,运算速度越快,计算精度越高


** byte **


byte 是字节,计算机中处理信息的最小单位,以八位二进制信息,简写为 B 。


byte 和 bit 之间的换算是 8 ,原因是一个字节需要 8 个字长


1 byte = 8 bit
或者
1 B = 8 b
复制代码


** 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(吉赫)。


1 GHz = 1000 MHz
复制代码


对于 CPU 来说,除了主频以外还有更重要的一个参数叫做浮点性能,有单精度和双精度,个别情况下会用到半精度,他们的单位是 FLOPS,那么浮点性能的单位怎么换算呢?


1 TFLOPS = 1000 GFLOPS
复制代码


相邻两个单位之间的进制 1000 。

速率单位换算

我们在下载文件或者拷贝数据时经常用到一个单位 Mbps 来描述数据拷贝的快慢或者网络带宽的大小,这个 Mbps 的意思是 Mb 每秒,及在一秒内可以传输的数据量为多少 Mb ,p 的 per 的简写。


我们在一些提供下载功能的软件里经常可以看到下载是数据是 MB/s ,那么这个单位和上边的 Mbps 有什么区别呢?


区别有两点


  • 表示方法不统一。也就是说,二者同样的表示方式应该是 Mbps 和 MBps 或者 Mb/s 和 MB/s 。

  • b 和 B 的区别。这个我们在最开始的时候说过了,一个是字节一个是字长。


那么他们应该这么换算呢?


1 MB/s = 8Mb/s
1 GB/s = 1024MB/s = 8192 Mb/s1 Gb/s = 1024Gb/s
复制代码


这样就清楚了,我们一般口头说的网络带宽的单位一般是 Mb/s , 下载文件和拷贝文件的单位一般是 MB/s , 下次我们就可以自己换算一下了。

存储单位换算

我们经常看到的存储单位有 KB、MB、GB、TB、PB 等,这些单位在计算机操作系统内的换算情况是这样的


1 PB = 1024 TB1 TB = 1024 GB1 GB = 1024 MB1 MB = 1024 KB1 KB = 1024 B
复制代码


在硬盘厂商的宣传里是这样的


1 PB = 1000 TB1 TB = 1000 GB1 GB = 1000 MB1 MB = 1000 KB1 KB = 1000 B
复制代码


造成这种差异的原因是,起先计算机的存储容量低到可怜,几千个 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 进行区分就不会有这样的歧义和疑惑了。

发布于: 5 小时前阅读数: 3
用户头像

耳东

关注

还未添加个人签名 2020.05.24 加入

主要研究分享运维技术,专注于监控、CICD、操作系统、云原生领域,公众号【耳东学堂】,知识星球同名,坚持原创,希望能和大家在运维路上结伴而行 邮箱:erdong@mail.erdong.site

评论

发布
暂无评论
计算机中遇到的单位该怎么换算