Système octal

Un article de Wikipédia, l'encyclopédie libre.
(Redirigé depuis Systeme octal)
Aller à : navigation, rechercher

Le système de numération octal est le système de numération de base 8, et utilise les chiffres de 0 à 7. D'après l'ouvrage de Donald Knuth's, The Art of Computer Programming, il fut inventé par le roi Charles XII de Suède.

La numération octale peut être construite à partir de la numération binaire en groupant les chiffres consécutifs en triplets (à partir de la droite). Par exemple, la représentation binaire du nombre décimal 74 est 1001010, que l'on groupe en (00)1 001 010 ; ainsi, la représentation octale est 1 pour 1, 1 pour le groupe 001, et 2 pour le groupe 010, ce qui nous donne 112.

Le système octal est quelquefois utilisé en calcul à la place de l'hexadécimal. Il possède le double avantage de ne pas requérir de symbole supplémentaire pour ses chiffres et d'être une puissance de deux pour pouvoir grouper les chiffres.

Le décompte octal pourrait avoir été utilisé dans le passé à la place du décompte décimal, en comptant soit les trous entre les doigts ou les doigts différents des pouces. Ceci expliquerait l'homonymie en français du mot "neuf" (qui signifie aussi "nouveau"), et pourquoi le latin pour neuf novem est si proche du latin pour le mot nouveau novus. Il pourrait avoir le sens de nouveau nombre. Ce qui expliquerait aussi la racine semblable des mots arabes تسعٌ (neuf) et اتسع (étendre)[1].

Notation en informatique[modifier | modifier le code]

Un nombre qui commence par un 0 (zéro) est considéré dans certains langages comme exprimé dans le système octal. Dans ces langages, 045 est compris comme un nombre octal, qui vaut 37 en décimal. Cependant ce système est rarement utilisé de nos jours, et sa survivance provoque des confusions et des erreurs : la majorité des développeurs ignore ce principe et attend que 045 soit compris comme le nombre décimal 45. Ainsi dans les langages modernes, le préfixe 0 tend à être remplacé par des préfixes plus explicites, ou à être supprimé.

En BASIC[modifier | modifier le code]

Un nombre octal commence par &O.

En C[modifier | modifier le code]

Un nombre qui commence par un 0 (zéro) est considéré comme exprimé dans le système octal. Cette notation n'a pas été retenue en C#, où l'octal a disparu.

En Java[modifier | modifier le code]

Un nombre qui commence par un 0 (zéro) est considéré comme exprimé dans le système octal.

En JavaScript[modifier | modifier le code]

Le préfixe 0 pour les nombres en octal est officiellement abandonné à partir de la 5e édition d'ECMAScript, et pour éviter les confusions un nombre non nul ne peut plus être écrit en commençant par un 0. Ainsi l'écriture 045 est interdite dans cette version[2]. Cependant, pour des raisons de compatibilité avec les versions précédentes, ce standard n'est pas forcément respecté à la lettre par tous les navigateurs, et l'interprétation des nombres en octal perdure.

En Perl[modifier | modifier le code]

En Perl 5, un nombre qui commence par un 0 (zéro) est considéré comme exprimé dans le système octal. En Perl 6, ce préfixe a été remplacé par 0o (zéro suivi de la lettre minuscule o)[3].

En Python[modifier | modifier le code]

Le préfixe 0 pour les nombres en octal a été abandonné. À partir de la version 3 un nombre octal commence par 0o (zéro suivi de la lettre minuscule o) ou 0O (zéro suivi de la lettre capitale O)[4].

Notes et références[modifier | modifier le code]

  1. The origin of numbers - Cover Story | UNESCO Courier | Find Articles at BNET.com
  2. ECMAScript 5e édition: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf
  3. http://perlcabal.org/syn/S02.html#Radix_markers
  4. http://docs.python.org/3.1/reference/lexical_analysis.html#literals

Articles connexes[modifier | modifier le code]