Zero-based numbering

In some mathematical contexts, zero-based numbering can be used without confusion, when ordinal forms have well established meaning with an obvious candidate to come before first; for instance, a zeroth derivative of a function is the function itself, obtained by differentiating zero times.

Martin Richards, creator of the BCPL language (a precursor of C), designed arrays initiating at 0 as the natural position to start accessing the array contents in the language, since the value of a pointer p used as an address accesses the position p + 0 in memory.

Discussing possible designs of array ranges by enclosing them in a chained inequality, combining sharp and standard inequalities to four possibilities, demonstrating that to his conviction zero-based arrays are best represented by non-overlapping index ranges, which start at zero, alluding to open, half-open and closed intervals as with the real numbers.

Dijkstra's criteria for preferring this convention are in detail that it represents empty sequences in a more natural way (a ≤ i < a ?)

), and that with half-open "intervals" of naturals, the length of a sub-sequence equals the upper minus the lower bound (a ≤ i < b gives (b − a) possible values for i, with a, b, i all integers).

This usage follows from design choices embedded in many influential programming languages, including C, Java, and Lisp.

Other programming languages, such as Fortran or COBOL, have array subscripts starting with one, because they were meant as high-level programming languages, and as such they had to have a correspondence to the usual ordinal numbers which predate the invention of the zero by a long time.

Zero is the lowest unsigned integer value, one of the most fundamental types in programming and hardware design.

If an array is used to represent a cycle, it is convenient to obtain the index with a modulo function, which can result in zero.

Empty ranges, which often occur in algorithms, are tricky to express with a closed interval without resorting to obtuse conventions like [1, 0].

Pointer operations can also be expressed more elegantly on a zero-based index due to the underlying address/offset logic mentioned above.

This would include a situation where the organism's genetically predetermined phenotype results in a fitness benefit to itself, because it did not "intend" to express its genes.

[13] In the similar sense, a computer may be considered from this perspective a zero-order intentional entity, as it does not "intend" to express the code of the programs it runs.

While the ordinal of 0 mostly finds use in communities directly connected to mathematics, physics, and computer science, there are also instances in classical music.

The composer Anton Bruckner regarded his early Symphony in D minor to be unworthy of including in the canon of his works, and he wrote gilt nicht ("doesn't count") on the score and a circle with a crossbar, intending it to mean "invalid".

As a parallel, the introductory weeks at university educations in Sweden are generally called nollning (zeroing).

The United States Air Force starts basic training each Wednesday, and the first week (of eight) is considered to begin with the following Sunday.

It was built after the ring road around Antwerp, but Brussels (being the capital city) was deemed deserving of a more basic number.

A case in point is Christ Church on Harvard Square, whose address is 0 Garden Street.

Some team sports allow 0 to be chosen as a player's uniform number (in addition to the typical range of 1-99).

This is for historical reasons: the list originally had only three freedoms, and when the fourth was added it was placed in the zeroth position as it was considered more basic.