Les types et valeurs de base
Les systèmes numériques ont leur propre façon de communiquer, appelé langage binaire
. Ce langage est représenté par 2 valeurs : le 0
, et le 1
, que l'on appelle aussi valeur booléenne
(Vrai ou Faux), bit
, ou encore base 2
.
Pour comprendre comment la machine communique avec des 0 et des 1, il faut comprendre comme l'Homme communique avec 10 valeurs : le système décimal
.
Le système décimal
Appelé également base 10, il représente le système que nous utilisons, car il représente nos doigts !
Nous utilisons un ensemble de valeurs allant de 0 à 9 (total de 10) pour représenter l'ensemble de notre système numérique : 0, 1, 2, ..., 9. Quand on atteint le neuf, on repasse l'unité à 0, et on passe à la dizaine : 10, 11, 12, ..., 99, 100 etc.
On a ainsi la possibilité de décomposer nos valeurs en unité, dizaine, centaine, ainsi de suite :
273 = 200 + 70 + 3
273 = 2*100 + 7*10 + 3*1
273 = 2*10² + 7*10¹ + 3*10⁰
Le système binaire
Le binaire fonctionne selon le même modèle que le décimal, sauf que les seules valeurs possibles sont 0 ou 1. Ainsi, toutes les informations dans un système numérique sont représentées par une suite de 0 et 1.
Les valeurs correspondent à des impulsions électriques :
On va retrouver le même concept pour compter :
Décimal | Binaire | Description |
---|---|---|
0 | 0 | Première valeur possible |
1 | 1 | Deuxième valeur possible : on arrive au bout |
2 | 10 | On passe un nouveau rang, et on met la première valeur à 0 |
3 | 11 | On passe la dernière valeur à 1 : on arrive au bout |
4 | 100 | On passe un nouveau rang, on met tout à 0 |
5 | 101 | Dernière valeur à 1 : on arrive au bout de ce rang |
6 | 110 | On la met donc à 0, et on passe la 2e valeur à 1 |
7 | 111 | On remet la première valeur à 1 : on arrive au bout du rang |
8 | 1000 | On passe un nouveau rang, on met tout à 0 |
... | ... |
Chaque rang de valeur est un bit
. Un bit n'a que 2 valeurs possibles.
Avec 2 bits, on a 4 valeurs possibles : 00, 01, 10, 11 (2²).
Avec 3 bits, on a 8 valeurs possibles : 000, 001, 010, 011, 100, 101, 110, 111 (2³).
Avec n
bits, on a 2n valeurs possibles.
Un groupement de 8 bits est appelé un octet. Il possède 256 valeurs, allant de 0 à 255.
C'est l'unité utilisée dans les systèmes de stockage par exemple (o, ko, Mo, Go, To ...).
Changements de base
Il est possible de passer d'une base à l'autre, et inversement. C'est concrètement ce que font nos machines : les caractères, les nombres, tout passe de la base 2 à d'autres bases !
Base 10 à 2
2 méthodes efficaces existent pour passer de la base 10 à la base 2 :
- Méthode euclidienne
- Méthode du tableau
Cette méthode consiste à faire une division euclidienne de la valeur que l'on cherche à convertir, par 2 (valeur correspond à la base). Le reste sera toujours une valeur étant 0, ou 1.
Lorsque le quotient de la dernière division vaut 0, on s'arrête, et on lit les valeurs des restes, du bas vers le haut :
Cette méthode consiste à utiliser un tableau dont les valeurs de la première rangée correspondent aux valeurs des puissances de 2 à chaque rang, de la droite vers la gauche :
28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 2⁰ |
---|---|---|---|---|---|---|---|---|
256 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
Pour convertir un nombre, on va chercher dans le tableau la puissance de 2 la plus grande et toujours inférieure à notre nombre. Une fois trouvée, on met un 1 dans sa case, et on soustrait notre nombre par la puissance de 2, et on continue. Si on ne peut pas mettre la puissance de 2 dans notre nombre, on met dans ce cas un 0.
Exemple avec 241 :
28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 2⁰ |
---|---|---|---|---|---|---|---|---|
256 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
0 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 1 |
On ne peut pas mettre 256 dans 241, on met 0.
On peut mettre 128 dans 241, on met 1, il reste 113.
On peut mettre 64 dans 113, on met 1, il reste 49 ...
Base 2 à 10
La conversion de la base 2 à la base 10 est plus simple.
Chaque bit est une puissance de 2, en commençant par le 0 tout à droite. Ainsi le bit le plus à droit correspond à 20, celui à gauche à 21 et ainsi de suite.
On va donc multiplier la valeur de chaque bit par 2 à la puissance de son rang :
1100101= 1∗2^6 + 1∗2^5 + 0∗2^4 + 0∗2^3 + 1∗2^2 + 0∗2^1 + 1∗2^0
1100101= 1∗64 + 1∗32 + 1∗4 + 1
1100101= 64 + 32 + 4 + 1
1100101= 101
Représentations numériques
Les systèmes numériques doivent être capables de traiter différents types de données. Comment pourrions-nous représenter des nombres négatifs ? Des réels ? Ou encore des caractères ?