No todos los lenguajes son de base cero.
En la mayoría de entornos de desarrollo, los elementos de un objeto de colección están basados en 1.
Los arrays en algunos lenguajes de programación opcionales también están basados en 1.
La ventaja de utilizar 0 como base es que el cálculo del desplazamiento de la base es mucho más sencillo. Por ejemplo, si se almacenan continuamente N piezas de datos de 4 bytes, siempre que sepa que la posición inicial de los primeros datos es =x), simplemente lea 4 bytes.
Suponiendo que se basa en 1, debes calcularlo así: x+(m-1)*4, con un cálculo de resta más.
La ventaja basada en 1 es que se ajusta a los hábitos del lenguaje natural y es más fácil de entender para las personas. Por ejemplo, cuando iteramos sobre una colección por índice, normalmente escribimos:
¿Para qué? ¿índice? =?1?¿Adónde ir? Gente del cuerpo. Si el conjunto está basado en 0, entonces debería escribirse como.
¿Para qué? ¿índice? =?0?¿Adónde ir? Gente del cuerpo. ¿Contar? -?1 Este obviamente no es tan fácil de leer como el anterior.
En términos generales, para estructuras con longitudes de elementos fijas, se utilizará un diseño basado en 0, lo que ayuda a reducir la cantidad de cálculo del posicionamiento durante el recorrido, como las matrices, y mejora la velocidad de ejecución. Para estructuras con longitudes de elementos fijas, se utilizará un diseño basado en 1, como un conjunto.