这个数字想必很多人都很熟悉,但你知道它背后的意义吗?
可以是计算机操作系统的进制单位,也可以是程序员们的特殊纪念日。每年10月24日被行业认定为“程序员节”。今天,正是一年一度的“程序员节”。
,一个巧妙又恼人的数字
其实就是2的10次方,是二进制计数的基本计量单位之一,是程序员每天都在打交道的数字。用二进制表示为,因此在程序员眼中,是一个“整数”。
因为电脑的运行和存储都基于二进制,所以内存也好磁盘也好闪存也好,理论总容量应该是2的某次幂。老一些的内存都是64M、M、M、M这样的数字。但最常用的2的次幂还是——它是计算机领域的基本倍数。
这个小游戏中也包含了2的次幂
为什么会成为计算机领域的基本倍数呢?
按照国际单位制(SI)的方法,逢千进位,1个千字节表示为字节,单位符号记为kB,即:1kB=B。
但计算机是二进制的,所以还是以一个2的次幂来定义“千”更加方便点。如果我们在计算机中表示,就是111110,按通常的千进位就是1KB=111110B,这看上去好像不太合适。
后来大家发现,这个数很好,它是2的次幂,同时和又很接近,误差只有2.4%。如果改用来代替,1KB=B,这下看起来就舒服多了!而且在底层计算时也会减少操作次数。
但问题来了!毕竟不等于。如果你买了一个标称T的硬盘,结果到手只有T,你可能就不开心了。
所以到底是还是?
计算机内部计算都是按照来算的,但是销售时却都会按照来宣称。比如标称为G的硬盘,实际上总可用空间是接近000000000字节,但对于计算机来说,只有G。
然而又不太好说是硬盘“缺斤短两”了,这是因为K、M这些单位,都是从科学计数法里拿来的,人家本来就是指,只是在电脑里成了。一般用户几乎不会接触到P以上的级别。在T这一级上,二者的差距不到10%,大家通常也就忍了。
为了避免混淆,国际电工委员会(IEC)提出过一个标准:IEC-13。在这个标准下,科学计数法()按照正常标记,而计算机领域()则全都加一个i。因此,1KB就是B,而1KiB才是B;1MiB=KiB,1GiB=MiB,等等。不幸的是,这个标准没有得到很广泛的使用,到现在大家还都是乱来的。
拓展阅读:最先用的人是……
有人说是中国人发明了二进制。但二进制正式进入数学体系要归功于莱布尼兹,而莱布尼兹很喜欢中国,明确认为《易》所用的八卦和六十四卦就是一种二进制。但是古代中国人并没有使用这些二进制数进行计算。单纯说构想出二进制表达数字的办法,那很多文明都干过;然而古埃及人有一种乘法,真的是在用相当于二进制的方式来运算了。
比如,计算×13,他们会这样计算:
×13
=(++64+32+8+4+2)×13
=×13+×13+64×13+32×13+8×13+4×13+2×13
=+++++52+26
=
等等,这是在干啥?如果我们来做乘法的话,那么我们会:
×13
=×13+×13+60×13+2×13
……好像也差不多。
古埃及人也是把大数拆成小数来算乘法,但是我们拆成10、、的倍数,而他们则拆成2、4、8、16、32、64……的倍数。这是二进制!
这种计算方式并没有对后代产生很大影响,但每次我们敲出的时候,似乎还是值得缅怀一下古埃及人?
,是程序员的节日
在二进制构筑的计算机世界里
他们一直用指尖代码改变着世界的点滴
程序员是用代码编织世界的工程师
他们用0和1构筑这个高效而便捷的世界
让科技绽放出向善而动人的力量
一行行代码
为我们创造出更多智能而美好的生活
最后,祝各位程序员节日快乐!
原标题:《程序员们节日快乐!你真的懂什么是吗?》