Arithmétique des entiers

Python permet de manipuler des entiers en décimal (base 10), binaire (base 2), octal (base 8) ou hexadécimal (base 16).

Pour exprimer un entier en base 2, (resp. 8, resp. 16), on le fait précéder de 0b (resp. 0o, resp. 0x).

Par exemple : 0xD5B, 0o6533, et 0b110101011011 représentent tous les trois la valeur 3419.

Voici les trois opérations binaires (“ou” inclusif, “ou” exclusif, “et”) spécifiques au type int.

Les résultats sont renvoyés au format décimal, et on peut les convertir au format binaire, octal ou hexadécimal (mais sous forme de chaîne de caractères cette fois) avec les fonctions bin, oct et hex. On réalise pourquoi l’opérateur ^ ne peut pas être utilisé pour désigner l’exponentiation ! Si veut calculer {a^n}, on écrira donc a**n ou pow(a,n).

Fonction Signification Exemples
x | y ou logique (or) bin(0b11001 | 0b01101) renvoie ’0b11101’
0b11001 | 0b01101 renvoie 29
hex(0x19 | 0xd) renvoie ’0x1d’
0x19 | 0xd renvoie 29 ; 25 | 13 renvoie 29
x ˆ y ou exclusif (xor) bin(0b11001 ^ 0b01101) renvoie ’0b10100’
0b11001 ^ 0b01101 renvoie 20
hex(0x19 ^ 0xd) renvoie ’0x14’
0x19 ^ 0xd renvoie 20 ; 25 ^ 13 renvoie 20
x & y et logique (and) bin(0b11001 & 0b01101) renvoie ’0b1001’
0b11001 & 0b01101 renvoie 9
hex(0x19 & 0xd) renvoie ’0x9’
0x19 & 0xd renvoie 9 ; 25 & 13 renvoie 9

Voici les deux opérations de décalage de bits (multiplication ou division par des puissances de 2).

Fonction Signification Exemples
x << n décalage à gauche de n bits
multiplication de x par {2^n}
13 << 5 renvoie 416 ; bin(13 << 5) renvoie ’0b110100000’
0b1101 << 5 renvoie 416 ; bin(0b1101 << 5) renvoie ’0b110100000’
x >> n décalage à droite de n bits
division entière de x par {2^n}
417 >> 5 renvoie 13 ; bin(417 >> 5) renvoie ’0b1101’
0b110100001 >> 5 renvoie 13 ; bin(0b110100001 >> 5) renvoie ’0b1101’
∼ x complément à 2
x → −x − 1 → x
bin(∼0b111000) renvoie ’-0b111001’
bin(∼0b100000) renvoie ’-0b100001’

Retour à l’accueil du cours Python/Numpy

Sommaire du chapitre 2

  1. Quelques types (classes) de base
  2. Opérations entre types numériques
  3. Les opérateurs avec assignation
  4. Les fonctions mathématiques du module math
  5. Le module cmath
  6. Arithmétique des entiers
  7. Valeurs booléennes et comparaisons
  8. Égalité structurelle et égalité physique