对于从零开始的编号,我读过的最优雅的解释是,值并不存储在数字行上的标记位置,而是存储在它们之间的空格中。第一项存储在0和1之间,第二项存储在1和2之间,等等。第 N 项存储在 N-1和 N 之间。可以使用两边的数字来描述项目的范围。按照惯例,单个项目使用下面的数字进行描述。如果给出一个范围(X,Y) ,用下面的数字标识单个数字意味着一个人可以不用任何算术就能识别第一个项目(X 项目) ,但是必须从 Y 中减去一个才能识别最后一个项目(Y-1)。使用上面的数字识别项目可以更容易地识别范围内的最后一个项目(它将是项目 Y) ,但更难识别第一个项目(X + 1)。
虽然根据上面的数字来识别项目并不可怕,但是将范围内的第一个项目(X,Y)定义为 X 上面的项目通常比将它定义为下面的项目(X + 1)更好。