Système octal

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

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

Un nombre octal commence par &O.

En C/C++

Un nombre qui commence par un 0 (zéro) ou une constante de caractère formée par '\' suivi de 1 à 3 chiffres est considéré comme exprimé dans le système octal. Cette notation n'a pas été retenue en C#, où l'octal a disparu.

Exemple: char A = '\101';

En Java

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

En JavaScript

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

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

Le préfixe 0 pour les nombres en octal a été abandonné. À partir de la version 3 de Python, 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].

En PHP

En PHP, un nombre qui commence par un 0 est considéré comme exprimé dans le système octal. Exemple : $a = 0123;

Dans d'autres langues
العربية: نظام عد ثماني
azərbaycanca: Səkkizlik say sistemi
bosanski: Oktalni sistem
català: Sistema octal
Deutsch: Oktalsystem
English: Octal
Esperanto: Okuma sistemo
español: Sistema octal
हिन्दी: अष्टाधारी
Kreyòl ayisyen: Sistèm oktal
Bahasa Indonesia: Oktal
íslenska: Áttundakerfi
日本語: 八進法
한국어: 팔진법
Mirandés: Sistema otal
Nederlands: Octaal
norsk nynorsk: Åttetalssystemet
Sesotho sa Leboa: Letlase la seswai
português: Sistema octal
română: Sistem octal
Scots: Octal
srpskohrvatski / српскохрватски: Oktalni sistem
Simple English: Octal
српски / srpski: Октални систем
தமிழ்: எண்ணெண்
Tiếng Việt: Hệ bát phân
中文: 八进制
Bân-lâm-gú: Pat-chìn-hoat
粵語: 八進制