GENISTA (1971) : TUTORIEL "BBC BASIC FOR WINDOWS" EN FRANÇAIS : APPENDICE C : BINAIRE ET HEXADÉCIMAL



Logo Genista, fondé en 1971

Guide Tutoriel de BBC BASIC for Windows, App. C

BBC BASIC (BB4W) Tutorial: Binary and Hexadecimal

Binaire et Hexadécimal (Tutoriel BBC BASIC, App. C) [Genista]

Par Peter Nairn  •  Traduction : Guy Schaffner (Texte et images) (Genista)

informatique et programmation Vous utilisez ce « Guide pratique » de programmation pour réaliser vos propres programmes avec la meilleure efficacité et une facilité vraiment incroyable. Il est cependant nécessaire d'avoir un minimum de connaissances « techniques » pour comprendre tout ce qui se passe à l'intérieur de la mémoire de l'ordinateur. Pour cela, voici un Appendice qui explique le plus clairement possible comment fonctionne le calcul de la machine. Vous découvrez la base 2 et la base 16.
Appendice B   •   Appendice C   •   Appendice D      

Appendice C — Binaire et Hexadécimal



Les nombres en base 2 – Le binaire


Jusqu'à présent, nous nous sommes contentés d'imaginer les ordinateurs comme des machines mettant des nombres dans des petites boîtes appelées cases mémoire, sans trop nous soucier de la façon dont cela se passe effectivement. En gros, ça va : comme pour une voiture, vous n'avez pas besoin de savoir comment elle fonctionne pour y monter et la conduire jusqu'à votre destination. Il arrive pourtant un moment où quelques connaissances deviennent utiles et permettent de progresser.

Alors, comment un ordinateur stocke-t-il les nombres ? L'emplacement mémoire d'un ordinateur est, en gros, formé de commutateurs. Il y en a des millions. Un commutateur peut avoir deux états : en marche (« on ») ou éteint (« off »). Un commutateur à lui seul peut donc représenter deux nombres : 0 (« off ») et 1 (« on »). Nous combinons des groupes de commutateurs pour pouvoir stocker des nombres plus grands. Si nous prenons deux commutateurs (appelons-les interrupteurs 0 et 1) ensemble, nous pouvons les utiliser pour représenter 4 nombres différents parce qu'il y a quatre états uniques. Les voici :


InterrupteurNombre
10 
000
011
102
113

Nous allons de droite à gauche, exactement comme si nous lisions le nombre 321 comme cent-vingt-trois. L'interrupteur le plus bas (le plus à droite) représente 1 quand il est allumé (« on »). L'interrupteur suivant prend la valeur 2 quand il est (« on »). Pour obtenir le nombre représenté, ajoutons les valeurs. Ajoutons un autre interrupteur :


InterrupteurNombre
210 
0000
0011
0102
0113
1004
1015
1106
1117

Nous pouvons maintenant représenter les nombres de 0 à 7. La première colonne donne une valeur de 4 pour « on ». On obtient un schéma particulier ici, en commençant avec l'interrupteur 0 :


      L'inter 0 « on »  vaut 1
      L'inter 1 « on »  vaut 2
      L'inter 2 « on »  vaut 4
    

Chaque interrupteur supplémentaire vaut deux fois la valeur du précédent. Si nous en ajoutons un autre, sa valeur sera 8 et nous permettra de représenter les nombres de 0 à 15. Cette méthode de compter est dite binaire (où « bi » signifie « deux » parce que nous nous occupons de deux états). Mathématiquement, chaque interrupteur vaut 2 à la puissance de sa position. D'où :


 
      2^0 = 1
      2^1 = 2
      2^2 = 4
      2^3 = 8

      etc.
    

Lorsque nous parlons de nombres à 8 bits ou de nombres à 32 bits, nous faisons référence au nombre d'interrupteurs. Les programmeurs appellent chaque interrupteur un « bit ». Par conséquent, on voit qu'un nombre à 8 bits est capable de représenter 2^8 = 256 états. Voici ce que vaut chaque bit :


2^72^62^52^42^32^22^12^0
1286432168421

Dès que vous comprenez cela, vous comprenez que les nombres à 16 et 32 bits sont faits de la même façon, avec simplement davantage de bits. Quelquefois, le bit le plus élevé est utilisé pour indiquer si le nombre est négatif, plutôt que pour donner une valeur numérique. Donc, notre nombre à 8 bits ci-dessus pourrait être utilisé pour contenir une valeur de 0 à 255 ou bien de –128 à +127, selon la convention utilisée. Le groupe de 8 bits est un groupe si courant qu'il possède son propre nom : un octet (« byte »). Nous avons déjà vu que « BB4W » possède un type de données appelé byte, aussi, dans cet exemple, le bit le plus élevé prend une valeur numérique plutôt qu'un signe et nous pouvons stocker des nombres de 0 à 255.



Les nombres en base 16 – L'hexadécimal


Il est important de réaliser que la représentation binaire est la même chose que la représentation décimale. La quantité physique ne change pas ; seul le moyen de représentation change. C'est la même méthode que celle qui consiste à parler une langue étrangère. Nous pouvons dire que nous avons « deux voitures » en français, ou bien « two cars » en anglais. Nous pouvons dire 2 en décimal ou bien 10 en binaire, c'est toujours la même quantité. Les quantités peuvent être représentées dans n'importe quel système numérique qui nous convient. On dit que ces systèmes sont dans des bases différentes. La base d'un nombre est prise dans la valeur de la deuxième colonne de la représentation.


      10 en décimal = dix, donc on est en base 10
      10 en binaire = deux, donc on est en base 2
    

En tant qu'humains, nous ne pouvons pas travailler longtemps en binaire ; tous ces 1 et ces 0 sèment trop la confusion. Ce qu'il nous faut, c'est une façon de représenter un nombre qui nous permette de revenir rapidement au binaire si c'est nécessaire. En regardant le schéma des valeurs des bits en binaire (1,2,4,8,16...) nous savons que n'importe lequel de ces nombres utilisera tous les bits et qu'il serait donc une bonne base numérique à utiliser.
  • Si nous prenons le nombre qui suit 2, nous avons 4. C'est un peu mieux, mais pas beaucoup, parce que notre séquence de nombres est maintenant 0,1,2,3,10,11, etc.
  • Essayez la puissance de deux suivante, c'est 8. Cela nous permet de représenter 0,1,2,3,4,5,6,7,10,11. Ça s'améliore, et les nombres en base 8 sont utilisés dans certains cercles.
  • Au nombre suivant, 16, les concepteurs d'ordinateurs et les ingénieurs ont décidé que c'était là le nombre le plus commode. La base 16 permet la représentation des nombres de 0 à 15 (décimal), c'est-à-dire 0000 à 1111 (binaire). Les nombres en base 16 sont appelés hexadécimaux ou, en abrégé, « hexa » : 10 en hexa, c'est 16 en décimal et 10000 en binaire.
  Comme le système décimal ne possède pas de caractères au-delà de 9, les lettres A à F sont utilisées pour représenter les nombres manquants de 10 à 15. BBC BASIC nous permet d'utiliser des nombres en hexadécimal dans notre code. Pour que le BASIC sache que le nombre est en base 16, nous mettons le signe « & » devant. Pour les lettres A à F, servez-vous de capitales ; on pourrait se servir de minuscules, mais faisons comme tout le monde ici et utilisons les signes par défaut.
  Il est possible d'utiliser des nombres binaires en les faisant précéder du signe « % » comme ceci : %111, %1000. Une liste complète de tous les nombres à 8 bits serait particulièrement ennuyeuse à lire en entier, aussi en voici les caractéristiques principales :


DécimalHexadécimal Binaire
0&0%00000000
1&1%00000001
2&2%00000010
3&3%00000011
4&4%00000100
5&5%00000101
6&6%00000110
7&7%00000111
8&8%00001000
9&9%00001001
10&A%00001010
11&B%00001011
12&C%00001100
13&D%00001101
14&E%00001110
15&F%00001111
16&10%00010000
17&11%00010001
18&12%00010010
19&13%00010011
.........
127&7F%01111111
128&80%10000000
129&81%10000001
.........
253&FD%11111101
254&FE%11111110
255&FF%11111111

L'« hexa » est aussi tellement pratique en raison de sa corrélation directe avec le binaire. Un chiffre hexa couvre toutes les combinaisons possibles de quatre bits binaires. Le chiffre suivant répète exactement le même schéma.

L'hexa est tellement imbriqué dans les ordinateurs que BBC BASIC l'affichera même à notre place. Pour convertir un nombre décimal en une chaîne hexadécimale, utilisez STR$ avec un tilde (signe [ ~ ] ) :


      PRINT STR$~(255)
    

Pour reconvertir un nombre hexadécimal en décimal, utilisez :


      PRINT EVAL ("&FFE")
    


Fin de l'Appendice C





Haut de Page  •  [Top of Page]

Page suivante (Ap. D)  •  [Next Page (Ap. D)]

Page précédente (Ap. B)  •  [Previous Page (Ap. B)]

Page d'entrée : BASIC, BBC BASIC et BB4W  •  [BASIC, BBC BASIC and BB4W  Entry Page]

Début du Guide pratique du BBC BASIC  •  [The Beginning of the BBC BASIC Tutorial]

Autres sujets  •  [Other subjects]