Représentation des données

Écriture en binaire d'un nombre entier

Bases de numération

Nous savons compter en base 10 depuis la maternelle, avec les chiffres 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Puis nous passons à 10, 11, 12 etc.

Il s'agit des mêmes chiffres avec une position en plus (les dizaines).

C'est ce qu'on appelle la numération décimale dite de position.

Nous aurions très bien pu ne compter qu'avec huit chiffres de 0 à 7.

Alors arrivé à 7, le 8 n'existant pas, on serait passé à 10, 11, ... 17, 20 ...

C'est la base 8 dite octale.

En base 2 ou binaire, on n'utilise que deux chiffres le 0 et le 1.

Arrivé à 1, le 2 n'existant pas, on passe à 10, 11, 100 ...

En base 12 (base duodécimale), nous utilisons les douze "chiffres" suivants: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B.

De sorte que, arrivé à B, nous passons à 10, 11, 12 ... 19, 1A, 1B, 20, 21 ...

En fait, le A en base 12 correspond au 10 en base décimale et le B correspond à 11.

En base 16 (hexadécimale), très utilisée en informatique, il faut utiliser 6 lettres-chiffres en plus des dix ordinaires.

décimal

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

......

hexadécimal

0

1

2

3

4

5

6

7

8

9

A

B

C

D

E

F

10

11

12

13

14

15

16

17

18

19

1A

......

FondamentalPrincipe de numération

Considérons un entier , alors tout nombre entier peut s'écrire sous la forme :

avec : un entier naturel et les des entiers naturels compris entre et

Par exemple, vérifiez avec votre calculatrice que :

Notations : On note ou bien

Sans précisions c'est la base 10 qui est sous entendue :

MéthodeÉcrire en base 10 un nombre exprimé en base b

Pour passer de la base à la base 10, il suffit d'écrire la décomposition en puissance de et de la calculer.

Par exemple :

En Python il existe une méthode spéciale pour passer du binaire au décimal :

On fait précéder l'écriture par 0b

1
print(0b1101011)

Cette ligne affichera 107 dans la console

MéthodeÉcrire en base b un nombre exprimé en base 10

Une première approche :

Prenons le nombre 213 et retrouvons son écriture en base 8.

Commençons par remplir un tableau avec les puissances de 8 en commençant par la droite :

.....

Il est inutile d'aller plus loin car

Comme , on peut savoir combien de fois il y a dans .

Une simple division donne :

On place donc un 3 dans le tableau :

.....

3

Il nous reste

Comme mais supérieur à , on recherche combien de fois il y a dans  :

On complète le tableau :

.....

3

2

Il reste 5 ( qui est inférieur à 8 )

On finalise le tableau :

.....

3

2

5

Ainsi on obtient :

Un autre exemple : Écrivons 107 en binaire :

On a :

il reste

d'où le tableau :

1

1

0

1

0

1

1

On obtient donc :

FondamentalComment ça marche ?

Une approche plus générale :

On souhaite écrire en base un nombre entier :

On effectue la division euclidienne de par  :

Puis on effectue la division euclidienne de par b ( si sinon on a fini..)

que l'on injecte dans la première écriture :

Maintenant si , on recommence..

Ce qui donne :

Et ainsi de suite jusqu'à ce que l'on ne puisse plus le faire

En observant le résultat, on remarque que :

On peut donc s’affranchir des manipulations de calculs 

Un exemple : 107 en binaire

Donc en partant du dernier reste : 1101011

L'écriture en binaire de 107 est la suite des restes en commençant par le dernier :

1101011

SimulationAvec Python

En python pour voir l'écriture d'un entier en base 2, 8 ou 16 il suffit d'écrire ces lignes :

1
print(bin(107))
2
print(oct(213))
3
print(hex(1512))

On obtient dans la console :

1
0b1101011
2
0325
3
000005E8

AttentionNombres de bit nécessaires pour coder des entiers en binaire

Supposons que nous ayons 4 bits à notre disposition (4 'places' dans une mémoire)

Le plus grand entier que nous pouvons coder est : soit les premiers entiers

Pour 8 bits les premiers entiers

Pour 32 bits les

Et pour 64 bits.....

PrécédentPrécédentSuivantSuivant
AccueilAccueilImprimerImprimer Stéphan Van Zuijlen Licence de documentation libre GNURéalisé avec Scenari (nouvelle fenêtre)