A cette époque, une partie sur une borne coûtait une petite pièce, laquelle pouvait offrir le privilège de jouer sans limite jusqu'au Game Over. Encore fallait-il être habile car la difficulté augmentait vite. Il existait (et existe toujours) de véritables champions du high score, en rivalisant pour conquérir les places hautes du Hall of Fame de leurs jeux préférés.
C'est pour cette raison qu'à cette époque, les jeux d'arcade n'ont pas de fin. Les niveaux ne sont souvent que des copies des précédents avec davantage d'ennemis, de vitesse, etc.
Un de ces jeux, le très populaire Pac-Man a pourtant une fin. Une fin assez inattendue, qui se produit lorsque le joueur atteint le
-ème niveau. Cet écran complètement "glitché" s'appelle le Kill Screen :
Et comme chacun sait, $256 = 2^8$. Coïncidence ? Pas du tout ! Nous découvrirons dans ce cours les raisons de ce bug en comprenant comment sont codés les nombres, ce qu'est un bit ainsi qu'un octet.

La représentation graphique d'un chiffre en base dix est une convention, on pourrait lui préférer n'importe quelle autre sans changer le système numérique. Voici quelques autres exemples existants :
| Valeur | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
|---|---|---|---|---|---|---|---|---|---|---|
| Arabe oriental | ٠ | ١ | ٢ | ٣ | ٤ | ٥ | ٦ | ٧ | ٨ | ٩ |
| Bengalais | ০ | ১ | ২ | ৩ | ৪ | ৫ | ৬ | ৭ | ৮ | ৯ |
| Braille | ⠚ | ⠁ | ⠃ | ⠉ | ⠙ | ⠑ | ⠋ | ⠛ | ⠓ | ⠊ |
| Devanagari | ० | १ | २ | ३ | ४ | ५ | ६ | ७ | ८ | ९ |
| Gujarati | ૦ | ૧ | ૨ | ૩ | ૪ | ૫ | ૬ | ૭ | ૮ | ૯ |
| Gurmukhi | ੦ | ੧ | ੨ | ੩ | ੪ | ੫ | ੬ | ੭ | ੮ | ੯ |
| Kannada | ೦ | ೧ | ೨ | ೩ | ೪ | ೫ | ೬ | ೭ | ೮ | ೯ |
| Khmer | ០ | ១ | ២ | ៣ | ៤ | ៥ | ៦ | ៧ | ៨ | ៩ |
| Laotien | ໐ | ໑ | ໒ | ໓ | ໔ | ໕ | ໖ | ໗ | ໘ | ໙ |
| Malayalam | ൦ | ൧ | ൨ | ൩ | ൪ | ൫ | ൬ | ൭ | ൮ | ൯ |
| Myanmar | ၀ | ၁ | ၂ | ၃ | ၄ | ၅ | ၆ | ၇ | ၈ | ၉ |
| N'ko | ߀ | ߁ | ߂ | ߃ | ߄ | ߅ | ߆ | ߇ | ߈ | ߉ |
| Oriya | ୦ | ୧ | ୨ | ୩ | ୪ | ୫ | ୬ | ୭ | ୮ | ୯ |
| Osmanya | 𐒠 | 𐒡 | 𐒢 | 𐒣 | 𐒤 | 𐒥 | 𐒦 | 𐒧 | 𐒨 | 𐒩 |
| Persan/Ourdou | ۰ | ۱ | ۲ | ۳ | ۴ | ۵ | ۶ | ۷ | ۸ | ۹ |
| Tamoul | ௦ | ௧ | ௨ | ௩ | ௪ | ௫ | ௬ | ௭ | ௮ | ௯ |
| Télougou | ౦ | ౧ | ౨ | ౩ | ౪ | ౫ | ౬ | ౭ | ౮ | ౯ |
| Thaï | ๐ | ๑ | ๒ | ๓ | ๔ | ๕ | ๖ | ๗ | ๘ | ๙ |
| Tibétain | ༠ | ༡ | ༢ | ༣ | ༤ | ༥ | ༦ | ༧ | ༨ | ༩ |
| Pac-Man | ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
... mais on pourrait tout à fait imaginer des systèmes très différents en choisissant pour certaines raisons une autre base !
dans plusieurs bases :
se note :
$$
{\Huge \overline{\color{red}{2}\color{blue}{6}} ^ {\large 10}}
$$
se note :
$$
{\Huge \overline{\color{green}{1} \color{red}{0} \color{blue}{1} } ^ {\large 5}}
$$
se note :
$$
{\Huge \overline{\color{purple}{1}\color{orange}{1}\color{green}{0}\color{red}{1}\color{blue}{0}} ^ {\large 2}}
$$
peut se noter :
$$
{ \Large \overline{26} ^ {\normalsize 10} = \overline{101} ^ {\normalsize 5} = \overline{11010}^{\normalsize 2}}
$$
peut se noter :
$$
{ \Large \overline{26} ^ {\normalsize 10} = \overline{101} ^ {\normalsize 5} = \overline{11010}^{\normalsize 2}}
$$
(quand on ne précise pas la base, par défaut il s'agit de la base décimale)
La conséquence la plus évidente de cette progression est visuelle : nombre de couleurs, taille et nombre de sprites
Bien sûr, cette phase exponentielle ne peut pas durer indéfiniment. Il n'existe pas d'ordinateur commercialisé dont le processeur traite des données en 128 bits. Si vous voulez en apprende davantage sur la loi de Moore dans le jeu vidéo :

Cette méthode, plus directe repose sur des divisions entières successives par $2$.
Pour l'utilisateur et l'informaticien, cette base est un peu pénible. Ses nombres sont très longs à écrire et on a tendance à traiter des informations plus grandes qu'un bit (d'où l'utilisation des octets vu avant).
La base 10 est trop éloignée de l'architecture d'un ordinateur. Les bases satisfaisantes sont des puissances de 2. Le système le plus utilisé en informatique est l'hexadécimal, c'est à dire la base 16. Pour représenter 16 chiffres différents, on utilise les lettres de l'alphabet au delà de 9. $$ \begin{array}{r|r} \text{base } 2 & \text{base } 10 & \text{hex} \\ \hline 0 & 0 & 0\\ 1 & 1 & 1\\ 1\ 0 & 2 & 2\\ 1\ 1 & 3 & 3\\ 1\ 0\ 0 & 4 & 4\\ 1\ 0\ 1 & 5 & 5\\ 1\ 1\ 0 & 6 & 6\\ 1\ 1\ 1 & 7 & 7\\ 1\ 0\ 0\ 0 & 8 & 8\\ 1\ 0\ 0\ 1 & 9 & 9\\ 1\ 0\ 1\ 0 & 10 & A\\ 1\ 0\ 1\ 1 & 11 & B\\ 1\ 1\ 0\ 0 & 12 & C\\ 1\ 1\ 0\ 1 & 13 & D\\ 1\ 1\ 1\ 0 & 14 & E\\ 1\ 1\ 1\ 1 & 15 & F\\ \dots & \dots \\ \end{array} $$
Ci-dessus un vieux jeu vidéo est édité. Les données textuelles sont décodées à droite (un caractère tient sur un octet).
Cette méthode repose également sur des divisions entières successives, mais par $16$.
Nous comprenons maintenant que l'indice du niveau de Pac-Man était sans doute codé sur un octet ne permettant de compter que jusqu'à 255. La vidéo ci-dessous (en anglais) va dans les détails (plutôt techniques) de ce fameux fill-screen :
Il y a énormément à dire sur la représentation des nombres. Le binaire et l'hexadécimal reviendront plus tard dans l'année, entre autre pour comprendre la représentation des couleurs en CSS (chapitre web) mais également les adresses IP dans le chapitre consacré aux réseaux.