Aller au contenu

Fonctions prédéfinies en langage Python

Nous avons vu en exercice comment concevoir des fonctions Python qui permettent le passage d'une base à une autre. Il existe également des fonctions prédéfinies dans le langage Python qui permettent ces conversions.

Du décimal vers le binaire

La fonction Python bin() renvoie l'écriture binaire de l'entier donné en argument. Cette écriture est précédée de 0b, où 0 est le chiffre zéro.

L'instruction :

>>> for k in range(20):
    ... print(f"L'écriture binaire de {k} est {bin(k)}.")

donne :

L'écriture binaire de 0 est 0b0.
L'écriture binaire de 1 est 0b1.
L'écriture binaire de 2 est 0b10.
L'écriture binaire de 3 est 0b11.
L'écriture binaire de 4 est 0b100.
L'écriture binaire de 5 est 0b101.
L'écriture binaire de 6 est 0b110.
L'écriture binaire de 7 est 0b111.
L'écriture binaire de 8 est 0b1000.
L'écriture binaire de 9 est 0b1001.
L'écriture binaire de 10 est 0b1010.
L'écriture binaire de 11 est 0b1011.
L'écriture binaire de 12 est 0b1100.
L'écriture binaire de 13 est 0b1101.
L'écriture binaire de 14 est 0b1110.
L'écriture binaire de 15 est 0b1111.
L'écriture binaire de 16 est 0b10000.
L'écriture binaire de 17 est 0b10001.
L'écriture binaire de 18 est 0b10010.
L'écriture binaire de 19 est 0b10011.

Du décimal vers l'hexadécimal

La fonction Python hex() renvoie l'écriture hexadécimale de l'entier donné en argument. Cette écriture est précédée de 0x, où 0 est le chiffre zéro.

L'instruction :

>>> for k in range(20):
    ... print(f"L'écriture hexadécimale de {k} est {hex(k)}.")

donne :

L'écriture hexadécimale de 0 est 0x0.
L'écriture hexadécimale de 1 est 0x1.
L'écriture hexadécimale de 2 est 0x2.
L'écriture hexadécimale de 3 est 0x3.
L'écriture hexadécimale de 4 est 0x4.
L'écriture hexadécimale de 5 est 0x5.
L'écriture hexadécimale de 6 est 0x6.
L'écriture hexadécimale de 7 est 0x7.
L'écriture hexadécimale de 8 est 0x8.
L'écriture hexadécimale de 9 est 0x9.
L'écriture hexadécimale de 10 est 0xa.
L'écriture hexadécimale de 11 est 0xb.
L'écriture hexadécimale de 12 est 0xc.
L'écriture hexadécimale de 13 est 0xd.
L'écriture hexadécimale de 14 est 0xe.
L'écriture hexadécimale de 15 est 0xf.
L'écriture hexadécimale de 16 est 0x10.
L'écriture hexadécimale de 17 est 0x11.
L'écriture hexadécimale de 18 est 0x12.
L'écriture hexadécimale de 19 est 0x13.

Du binaire vers le décimal

Un terminal interprète immédiatement un entier entré sous forme binaire, c'est-à-dire précédé du chiffre 0 et de la lettre b :

>>> 0b1101
13

Par contre, dans un fichier au format .py, il faudra écrire cet entier sous forme de chaîne de caractères (c'est-à-dire entouré d'apostrophes ou de guillemets) puis utiliser la fonction int() pour le convertir (en indiquant la base d'origine de l'écriture de ce nombre).

Deux écritures sont possibles. Ainsi les instructions :

print( int('0b1101',2) )
print( int('1101',2) )

affichent à l'écran la même valeur :

13
13

De l'hexadécimal vers le décimal

Un terminal interprète immédiatement un entier entré sous forme hexadécimale, c'est-à-dire précédé du chiffre 0 et de la lettre x :

>>> 0x1a
26

Comme pour l'écriture binaire, dans un fichier au format .py, il faudra écrire cet entier sous forme de chaîne de caractères puis utiliser la fonction int() pour le convertir.

Deux écritures sont possibles. Ainsi les instructions :

print(int('0xa',16))
print(int('a',16))

affichent à l'écran la même valeur :

10
10