Pourquoi les ordinateurs comptent-ils de zéro?

Table des matières:

Pourquoi les ordinateurs comptent-ils de zéro?
Pourquoi les ordinateurs comptent-ils de zéro?

Vidéo: Pourquoi les ordinateurs comptent-ils de zéro?

Vidéo: Pourquoi les ordinateurs comptent-ils de zéro?
Vidéo: Exporter ses contacts outlook - YouTube 2024, Avril
Anonim
 Compter à partir de zéro est une pratique très courante dans de nombreux langages informatiques, mais pourquoi? Continuez à lire pendant que nous explorons le phénomène et pourquoi il est si répandu.
Compter à partir de zéro est une pratique très courante dans de nombreux langages informatiques, mais pourquoi? Continuez à lire pendant que nous explorons le phénomène et pourquoi il est si répandu.

La séance de questions et réponses d’aujourd’hui nous est offerte par SuperUser, une sous-division de Stack Exchange, un groupe de sites Web de questions-réponses dirigé par la communauté.

La question

Lecteur superutilisateur DragonLord est curieux de savoir pourquoi la plupart des systèmes d'exploitation et des langages de programmation comptent à partir de zéro. Il écrit:

Computers traditionally tally numerical values starting from zero. For example, arrays in C-based programming languages start from index zero.

What historical reasons exist for this, and what practical advantages does counting from zero have over counting from one?

Pourquoi vraiment? Aussi répandue que soit la pratique, il existe sûrement des raisons pratiques pour sa mise en œuvre.

La réponse

Le contributeur de SuperUser, Matteo, offre les informations suivantes:

Counting arrays from 0 simplifies the computation of the memory address of each element.

If an array is stored at a given position in memory (it’s called the address) the position of each element can be computed as

element(n) = address + n * size_of_the_element

Si vous considérez le premier élément comme le premier, le calcul devient

element(n) = address + (n-1) * size_of_the_element

Pas une différence énorme mais cela ajoute une soustraction inutile pour chaque accès.

Édité pour ajouter:

  • L'utilisation de l'index de tableau en tant que décalage n'est pas une exigence, mais simplement une habitude. Le décalage du premier élément peut être masqué par le système et pris en compte lors de l'allocation et du référencement d'un élément.
  • Dijkstra a publié un article «Pourquoi la numérotation devrait commencer à zéro» (pdf), où il explique pourquoi commencer par 0 est un meilleur choix. Partir de zéro permet une meilleure représentation des plages.

Si vous souhaitez approfondir la réponse, le document de Dijkstra est une lecture informative.

Avez-vous quelque chose à ajouter à l'explication? Sound off dans les commentaires. Voulez-vous lire plus de réponses d'autres utilisateurs de Stack Exchange doués en technologie? Découvrez le fil de discussion complet ici.

Conseillé: