1024程序员节?你懂1024吗?

10.24程序员节?你懂1024吗?

  1024是2的十次方,二进制计数的基本计量单位之一。程序员(英文Programmer)是从事程序开发、维护的专业人员。程序员就像是一个个1024,以最低调、踏实、核心的功能模块搭建起这个科技世界。1K=1024B,1M=1024K,1GB=1024M,而1GB与1级谐音,也有一级棒的意思。

  从2014年起,每年10月24日定义为程序员节。以一个节日的形式,向通过coding改变世界,也以实际行动在浮躁的世界里,固执地坚持自己对于知识、技术和创新追求的程序员们表示致敬。

国外的程序员节

  国外的程序员节,(英语:Programmer Day,俄语:День программи́ста)是一个俄罗斯官方节日,日期是每年的第 256(0x100) 天,也就是平年的 9 月 13 日和闰年的 9 月 12 日,选择 256 是因为它是 2 的 8 次方,比 365 少的 2 的最大幂。

  大家发现这些数字都好奇怪啊,王登科在他的一篇文中这么说,“那为什么不是1010或者其他的日子?答案是逼格,程序员看上去呆蠢,但实际上却精得很,他们不愿意自己的节日是基于一种极简单的方式来确定的,这好比说,「我会用编辑器,我是程序员!」一样,这种表现方式很Low,程序员们会拿出自己的作品,或写出一段牛逼的算法,来表达这个意思。”看来说的还是很有道理的。

有点乱:1Kb到底是1000比特还是1024比特

  因为电脑的运行和存储都基于二进制,所以内存也好磁盘也好闪存也好,理论总容量应该是2的某次幂,1024——它是计算机领域的基本倍数:1M = 1024k,1G = 1024M,等等。

  问题来了!1024和1000太接近了——一个有趣而有用的巧合,正因此它成了计算机的基本倍数;但另一些时候就烦人了。例如现在硬盘几乎都在玩这个花招。计算机内部计算都是按照1024来算的,但是销售时却都会按照1000来宣称。比如我现在这个标称为500G的硬盘,实际上总可用空间是接近500000000000字节,对于计算机来说,只有465G。如果你买了一个4600T的硬盘,结果到手只有4000T,你可能就不开心了。

10.24程序员节?你懂1024吗?

  而他们会跟你说k啊M啊这些前缀,都是从科学计数法的前缀里拿来的,人家本来就是指1000,只是在电脑里成了1024,只是大家的标准不一样罢了。

  kilo是1795年法国人设立公制的时候从希腊语改来的词,本来是1000,但计算机里1kB = 1024B;

  Mega来自希腊文“大”,1947年在科学计数法里确立为1000k,在计算机里就是1024k;

  Giga来自希腊文“非常大”,在科学计数法是1000M,计算机是1024M;

  Tera来自希腊文“怪物”,在科学计数法是1000G,计算机是1024G;

  一般用户几乎不会接触到P以上的级别。在T这一级上,二者的差距不到10%,大家通常也就忍了。

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

1024最早在哪使用?

  古埃及人有一种乘法,真的是在用相当于二进制的方式来运算了,他们被认为是最先用1024的人。

  转了徐宥一个推: "Sedgewick 的算法书里面记载了古埃及的不用九九表的乘法,比如 11 X 13. 依次把左边除以2, 右边依次乘以2, 直到左边成为1. 然后把左边为奇数的那些右边的项相加。原理上等价于左边的数转为了二进制。古人能想到这个算法真是神奇。"

10.24程序员节?你懂1024吗?