top of page

Représentation des nombres 

Un peu d'Histoire

Il y a 4000 ans, les babyloniens inventèrent la base 60 comptant sur 12 phalanges et 5 doigts et la numération de position .

​

Or, les Romains eux n'utilisaient pas le système de position

 

Au IVème siècle, en Inde, on utilise le 0, la numération de position  et la base 10

​

Les premiers ordinateurs stockaient sur une carte perforée, l'unité de calcul est le bit

​

Exemple de système de positions et de systèmes sans celui ci :

Système de position :

111

111

Système Romains :

111

3

Base 2 ,10 et 16

Les différentes manière de compter

Tableau de valeurs

0               0               0

1               1               1

2               2             10

3               3             11

4               4           100

5               5           101

6               6           110

7               7           111

8               8         1000

9               9         1001

10             A         1010

11             B         1011

12             C         1100

13             D         1101

14             E         1110

15             F         1111

16             G       10000

17            10      10001

Exemples :

14(10) = 1 x 10**1 + 4 x 10**0

​

​

1110(2) = 1x2**3 + 1 x 2**2 + 1 x 2**1 + 0 x 2**0

=14

​

111(16) = 1 x 16**2 + 1x 16**1 + 1 x 16**0

=273 

Python-Logo-PNG_008.png

Conversions

Nous allons voir plusieurs type de conversions, il y a celle mathématique et avec python reposant sur le même principe mais avec une commande associée à python

Mathématiques 

Tout d'abord, pour convertir une base à une autre nous devons utilisée une division Euclidiennes pour passez de la base 10 à la base 2 et la base 10 à la base 16

Pour passer de la base 10 à 2

On fait une division euclidienne par 2 et on va garder le reste qu'on notera dans notre nombre binaire, puis on redivisera le résultat de la division encore par 2 , on répétera cette étape jusqu'à ce que le résultat soit nul donc égal à 0, de plus on lira les restes d'une certaine manière a l'appui sur l'exemple

conversion.png

Pour passez de la base 10 à 16

pour la conversion entre les bases, on fera le même principe que pour passer de la base 10 à 2

Pour passer de la base 16 à 2 ou l'inverse

on se doit de prendre chaque ensemble de 4 bits et de convertir directement chaque valeur c'est à dire de convertir la valeur d'un ensemble de 4 bits en binaire en la valeur associée dans la base 16:

2_edited.jpg

En python

En python, nous avons directement des fonctions pour convertir directement une base en une autre:

Fonction de base en python :

0b : cette instruction transformera la base binaire en base décimal : 0b10101010100 = 1364

bin est le même principe mais à l'envers : bin(18) = 10010

​

hexa permet de traduire un nombre décimal en nombre hexadécimal : hex(12) = 0xc

et donc dans le le principe opposé on a 0x : 0x15 = 21

​

Seulement, on peut créer des programme pour le faire manuellement ; bien sur ; c'est assez inutile mais pour l'utilité pédagogique on s'en moque :

n = [1,0,1,0,1,0,1,0,1,0]
p = [1,0,1,0,1,0,1,0,1,0]
r = [0,0,0,0,0,0,0,0,0,0,0]
c =0


for i in range(9,-1,-1):
  a = n[i]
  b = p[i]
  print(i)
  r[i+1] =(a and not b and not b ) or (not a and b and not c) or (not a and not b and c) or (a and b and c)
  c= (a and b) or (b and c) or (a and c)

r[0]=c
print(r)

a = "1010101010"
b = "1010101010"
sum = int(a,2) +int(b,2)
print(bin(sum))

​

​

Console :

9
8
7
6
5
4
3
2
1
0
[1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0]
0b10101010100

bottom of page