Ecriture d’un entier positif dans une base supérieure ou égale à 2.

Représentation des données: types et valeurs de base

Plan

«Notre» système.

Afin de mieux comprendre les autres bases, revenons sur celle que nous connaissons et analysons là. Ce système de base 10, aussi appelé système décimal. Pourquoi ce nom? Tout simplement parce qu’il utilise 10 chiffres. Comment avons-nous construit les nombres à partir de ces 10 chiffres ? Retour en maternelle… Comptons :

  0
  1
  2
  3
  4
  5
  6
  7
  8
  9

Nous n’avons plus de chiffres disponibles ! On a donc décidé de repartir de 0 et de rajouter un à gauche, que l’on appellera chiffre des dizaines.

1 0
1 1
1 2
etc
1 9 il n’y a plus de chiffre aux unités, on augmente les dizaines
2 0
2 1

 

Ainsi de suite jusque 99. Là on a épuisé toutes les dizaines possibles. On va donc remettre les dizaines et les unités à zéro et ajouter un à gauche…ce qui donne 100. Puisque l’on change de rang tous les 10 chiffres, on comprend que chaque rang représente une puissance de 10. Ainsi 216 on a un 2 aux centaines qui correspond à 2 × 10n. La décomposition de 216 en base 10 (notée (216)10 ) est : 2 × 102+ 1 × 101 + 6 × 100.

Le système binaire :

Le binaire c’est un système de représentation des nombres qui n’utilise que 2 chiffres : 0 et 1.
Les ordinateurs, téléphones, bref tous les instruments numériques actuels fonctionnent en binaire. La raison est assez simple. Un ordinateur fonctionne à l’électricité (quel scoop) et, pour le faire réagir à nos actions la seule méthode maitrisée à ce jour est « le courant passe », « le courant ne passe pas » dans le composant électronique. On a donc 2 états qui vont représenter 1 et 0.

Historiquement, les nombres apparaissent en France en 1600. Nepper (1617) et surtout Leibniz (1677) deux grands mathématiciens dont vous entendrez parlez si vous suivez des études scientifiques) se sont particulièrement intéressés à ces nombres. Leibniz fut le premier à vouloir concevoir une calculatrice mécanique reposant sur les nombres binaires....comme nos ordinateurs! A une époque ou l'électronique n'existait pas! Boole publie "l'algèbre de Boole" en 1847.

Si nous n’utilisons que deux chiffres. On peut construire les nombres binaires avec le même procédé que celui du système décimal. Il faudra juste penser à rajouter une colonne à gauche lorsque nous aurons utilisé tous nos chiffres…à savoir 0 et 1…ça va aller vite.

Comptons en binaire :

    0  
    1 Déjà plus rien de disponible !
  1 0 On met un zéro et on rajoute un à droite
  1 1 etc
1 0 0  
1 0 1  
1 1 0  
N’oubliez pas, ce n’est pas en lisant que l’on apprend mais en faisant ! Refaites la table précédente en allant plus loin. Amusez vous à compter en base 3 (on utilise donc 3 chiffres ! 0,1 et 2) ou 7, juste pour comprendre les principes.
Voici la correspondance entre les nombres ci-dessus et nos nombres décimaux :

Ecriture binaire Ecriture Décimale
0 0
1 1
10 2
11 3
100 4
101 5
110 6

Définissons le mot bit dont vous avez dû entendre parler à propos des consoles. Les première consoles étaient en 8 bits (Nintendo Entertainment System, ou NES, 1983) puis 16 bits (Sega Mega drive, SNES…). Aujourd’hui nous en sommes à 128 bits.
Qu’est que cela signifie ? Un bit est tout simplement l’unité informatique, 0 ou 1. Le courant passe ou pas dans un transistor. Bref, le bit c’est un chiffre binaire. Comme on vient de le voir, avec plusieurs chiffres binaires on forme des nombres (exactement comme dans notre système décimal).

Voyons plus haut. Pour écrire 4 nous avons eu besoin de 3 bits.
Combien de valeurs puis-je écrire avec ma vieille NES, ma Sega ou ma nouvelle ps4 ?

A savoir : 1 octet = 8 bits.

Pour mémoire: 1To (Terra octet) = 1000 Go (giga-octets)

1Go=1000Mo et 1 Mo=1000ko= 1 000 000 octets

Enfin, il faut savoir que les nombres entiers sont du type int en informatique. Voir ici pour plus de types de variables.

Convertir le binaire en décimal :

Pour cela il suffit d’utiliser la remarque faite en système décimal  ((216)10 =2 × 102+ 1 × 101 + 6 × 100) : la somme de chaque bit multiplié par (base)rang donnera le nombre écrit.
Ainsi 101 = 1 * 22+ 0 × 21 + 1 × 20 = 4 + 0 + 1 =5
Si l’on généralise à une base d’ordre b (b=2 en binaire et b=10 en décimal). Un nombre qui s’écrit
(xyzw)b= (x × b3 + y × b2 + z × b1 + w × b0.

A faire:

Convertir le décimal en binaire :

Comme vu ci-dessus, l’écriture d’un nombre dans une base consiste à faire rentrer la plus grande puissance de la base (par exemple la plus grande puissance de 10 en système décimal) et traiter le reste par la puissance inférieure etc…
On devine ici que l’on va pouvoir convertir un nombre décimal en binaire en faisant des divisions successives par 2. Les restes des divisions nous donnerons les bits.
Par exemple :

216÷2 = 108 reste 0
108÷2= 54 reste 0
54÷2= 27 reste 0
27÷2= 13 reste 1
13÷2= 6 reste 1
6÷2= 3 Reste 0
3÷2= 1 Reste 1
1÷2= 0 Reste 1

Il suffit maintenant de lire la colonne des restes en remontant : (216)10=(11011000)b

Le système hexadécimal :

L’ordinateur travaille en binaire mais cela fait pour nous beaucoup de 0 et 1. Ce n’est pas très pratique. Bien sûr nos ordinateurs savent convertir le binaire en décimal et réciproquement. Cependant, un autre système est très intéressant de part ses propriétés liées au binaire.
C’est le système hexadécimal qui est un système de base 16. Oui, il utilise 16 chiffres !
Pour noter ces chiffres, vu que nous n’en connaissons que 10, nous utiliserons des lettres, une fois nos chiffres conventionnels épuisés.
0,1,2,3,4,5,6,7,8,9,10 heu non pas 10…il nous reste encore des chiffres.
0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F puis….10,11,12,13,14,15,16,17,18,19,1A,1B,….

Pourquoi s’embarrasser d’un nouveau système ?
Tout simplement parce que 16=24, ce qui signifie qu’avec un seul chiffre hexadécimal on représente 4 bits pile !
Du coup la représentation d’un nombre à 8 bits, tiendra sur 2 chiffres hexadécimaux :
Par exemple
(01011011)b= (0101   1011)b= (5B)hex

Binaire hexadécimal
0 0
1 1
10 2
11 3
100 4
101 5
110 6
111 7
1000 8
1001 9
1010 A
1011 B
1100 C
1101 D
1110 E
1111 F

Bien penser à faire des groupes de 4 en partant de la droite, quitte à rajouter des zéros à gauche.
Pour convertir de hexadécimal, il suffit d’utiliser la table ci-dessus. Par exemple (4D)hex=(1001101)2.
Attention (D4)hex=(1101 0100)2, bien faire attention à faire des paquets de 4 chiffres ! L’erreur serait d’écrire (1101100)b.

Pour la conversion vers le système décimal, les techniques sont les mêmes que pour le passage en binaire mais comme nous sommes en base 16…nous diviserons par 16 ou utiliserons la division euclidienne par 16.

Exercices

  1. a) Combien de nombres entiers naturels en base 10 peut on écrire avec 12 bits (binaires)? avec 2 octets?
    b) En hexadécimal en utilisant 4 chiffres, combien de nombres entiers en base 10 peut-on écrire?
    c) En hexadécimal sur 6 chiffres, combien de bits faudra-t-il pour pouvoir écrire ces nombres en binaire?
    d) et en base 3? Question difficile, nécessite le ln pour un réponse rigoureuse, sinon par essais.

  2. Convertir les nombres binaires entiers suivants en base 10: 10010010; 111111; 00110101; 1000000

  3. Convertir les nombres de la base 10 suivants en binaire: 325, 26, 1024, 666

  4. Convertir les nombres binaires suivants en hexadécimal: 101010101010, 111000111, 1100110011001100110011

  5. Convertir les nombres en base décimale suivants en hexadécimal: 1234, 5678, 70000

  6. Convertir les nombres hexadécimaux suivants en binaire: ABCDEF, 1A2B, 100010

  7. Que ce passe-t-il si je multiplie le nombre binaire 00110101 par 2? Si vous n'avez pas d'idée, convertissez ce nombre en décimal, multipliez par 2 puis remettez le en binaire.

  8. Ecrire un algorithme de conversion de décimal vers binaire

  9. Ecrire un algorithme de conversion de binaire vers hexadécimal

Android

De la programmation pour pc à la programmation pour téléphone.

A finir

Pas eu le temps de tout faire.....