程序员们节日快乐!你真的懂什么是1024吗?

程序员们节日快乐!你真的懂什么是1024吗?

1024这个数字想必很多人都很熟悉,但你知道它背后的意义吗?

1024可以是计算机操作系统的进制单位,也可以是程序员们的特殊纪念日。每年10月24日被行业认定为“程序员节”。今天,正是一年一度的“1024程序员节”。

1024,一个巧妙又恼人的数字

1024其实就是2的10次方,是二进制计数的基本计量单位之一,是程序员每天都在打交道的数字。1024用二进制表示为10000000000,因此在程序员眼中,1024是一个“整数”。

因为电脑的运行和存储都基于二进制,所以内存也好磁盘也好闪存也好,理论总容量应该是2的某次幂。老一些的内存都是64M、128M、256M、512M这样的数字。但最常用的2的次幂还是1024——它是计算机领域的基本倍数。

2048这个小游戏中也包含了2的次幂

1024 为什么会成为计算机领域的基本倍数呢?

按照国际单位制 (SI) 的方法,逢千进位,1个千字节表示为1000字节,单位符号记为kB,即:1 kB = 1 000 B。

但计算机是二进制的,所以还是以一个2的次幂来定义“千”更加方便点。如果我们在计算机中表示 1000,就是1111101000,按通常的千进位就是1 KB = 1111101000 B,这看上去好像不太合适。

后来大家发现,1024 这个数很好,它是2的次幂,同时 1024 和 1000 又很接近,误差只有 2.4%。如果改用 1024 来代替 1000,1 KB = 10000000000 B,这下看起来就舒服多了!而且在底层计算时也会减少操作次数。

但问题来了!1024毕竟不等于1000。如果你买了一个标称4600T的硬盘,结果到手只有4000T,你可能就不开心了。

所以到底是1000还是1024?

计算机内部计算都是按照1024来算的,但是销售时却都会按照1000来宣称。比如标称为500G的硬盘,实际上总可用空间是接近500000000000字节,但对于计算机来说,只有465G。

然而又不太好说是硬盘“缺斤短两”了,这是因为K、M这些单位,都是从科学计数法里拿来的,人家本来就是指1000,只是在电脑里成了1024。一般用户几乎不会接触到P以上的级别。在T这一级上,二者的差距不到10%,大家通常也就忍了。

为了避免混淆,国际电工委员会(IEC)提出过一个标准:IEC 80000-13。在这个标准下,科学计数法(1000)按照正常标记,而计算机领域(1024)则全都加一个i。因此,1KB就是1000B,而1KiB才是1024B;1 MiB = 1024 KiB,1 GiB = 1024 MiB,等等。不幸的是,这个标准没有得到很广泛的使用,到现在大家还都是乱来的。

拓展阅读:最先用1024的人是……

有人说是中国人发明了二进制。但二进制正式进入数学体系要归功于莱布尼兹,而莱布尼兹很喜欢中国,明确认为《易》所用的八卦和六十四卦就是一种二进制。但是古代中国人并没有使用这些二进制数进行计算。单纯说构想出二进制表达数字的办法,那很多文明都干过;然而古埃及人有一种乘法,真的是在用相当于二进制的方式来运算了。

比如,计算1262 × 13,他们会这样计算:

1262 × 13

= (1024 + 128 + 64 + 32 + 8 + 4 + 2) × 13

= 1024 × 13 + 128 × 13 + 64 × 13 + 32 × 13 + 8 × 13 + 4 × 13 + 2 × 13

= 13312 + 1664 + 832 + 416 + 104 + 52 + 26

= 16406

等等,这是在干啥?如果我们来做乘法的话,那么我们会:

1262 × 13

= 1000 × 13 + 200 × 13 + 60 × 13 + 2 × 13

……好像也差不多。

古埃及人也是把大数拆成小数来算乘法,但是我们拆成10、100、1000的倍数,而他们则拆成2、4、8、16、32、64……的倍数。这是二进制!

这种计算方式并没有对后代产生很大影响,但每次我们敲出1024的时候,似乎还是值得缅怀一下古埃及人?

1024,是程序员的节日

在二进制构筑的计算机世界里

他们一直用指尖代码改变着世界的点滴

程序员是用代码编织世界的工程师

他们用0和1构筑这个高效而便捷的世界

让科技绽放出向善而动人的力量

一行行代码

为我们创造出更多智能而美好的生活

最后,祝各位程序员节日快乐!

原标题:《程序员们节日快乐!你真的懂什么是1024吗?》

相关推荐

中国汉字繁体字查询

中国汉字繁体字查询

📅 06-27 👁️ 6167
每日英语第398期:公司里的 c

每日英语第398期:公司里的 c

📅 06-27 👁️ 3927
什么是光学字符识别 (OCR)?

什么是光学字符识别 (OCR)?

📅 06-27 👁️ 4317