众所周知,计算机是从0开始计数,而不是我们平时常用的从1开始计数,但你有想过为什么吗?
其实不是计算机从0开始计数而是多数编程语言中的数组都使用0作为起始下标,又是为什么呢?
经过大量的搜索查证,我终于找到了答案。
故事还要从一位真正的大佬艾兹格·迪科斯彻(Dijkstra)讲起,
艾兹格·W·迪科斯彻Dijkstra,结构程序设计之父。
-
提出“goto有害论”;
-
提出信号量和PV原语;
-
解决了“哲学家聚餐”问题;
-
Dijkstra最短路径算法和银行家算法的创造者;
-
THE操作系统的设计者和开发者;
-
第一个Algol 60编译器的设计者和实现者;
-
与D. E. Knuth并称为我们这个时代最伟大的计算机科学家的人。
这里贴出我翻译后的大佬语录:为了表示自然数1,2,3,4...14...的子序列,一般有四种序列的表示方法:
a) 2 i < 13
b) 1 < i 12
c) 2 i 12
d) 1 < i < 13
以上的几种表达方式里,有哪一种比其他的好吗?
是的,a和b有较为明显的优点:他们上下界数值之间的差值就是这个序列的长度。在任何一种表示中,两个子序列相邻