Calculer avec des nombres entiers binaires, octals et hexadécimaux en Python

Vous devez convertir ou afficher des nombres entiers représentés par des chiffres binaires, octaux ou hexadécimaux. Pour convertir un entier en une chaîne de texte binaire, octale ou hexadécimale, utilisez les fonctions bin(), oct() ou hex(), respectivement:

>>> x = 1234
>>> bin(x)
'0b10011010010'
>>> oct(x)
'0o2322'
>>> hex(x)
'0x4d2'
>>>

Alternativement, vous pouvez utiliser la fonction format() si vous ne voulez pas que les préfixes 0b, 0o, ou 0x apparaissent. Par exemple:

>>> format(x, 'b')
'10011010010'
>>> format(x, 'o')
'2322'
>>> format(x, 'x')
'4d2'
>>>

Les nombres entiers sont signés, donc si vous travaillez avec des nombres négatifs, la sortie inclura également un signe. Par exemple:

>>> x = -1234
>>> format(x, 'b')
'-10011010010'
>>> format(x, 'x')
'-4d2'
>>>

Si vous avez besoin de produire une valeur non signée à la place, vous aurez besoin d’ajouter la valeur maximale pour définir la longueur en bits. Par exemple, pour afficher une valeur de 32 bits, utilisez ce qui suit:

>>> x = -1234
>>> format(2**32 + x, 'b')
'11111111111111111111101100101110'
>>> format(2**32 + x, 'x')
'fffffb2e'
>>>

Pour convertir des chaînes entières dans différentes bases, utilisez simplement la fonction int() avec une base appropriée. Par exemple:

>>> int('4d2', 16)
1234
>>> int('10011010010', 2)
1234
>>>

Pour la plupart, travailler avec des entiers binaires, octaux et hexadécimaux est simple. Rappelez-vous que ces conversions ne concernent que la conversion d’entiers vers et à partir d’une représentation textuelle. Il n’y a qu’un seul type d’entier.

Enfin, il y a une mise en garde pour les programmeurs qui utilisent octal. La syntaxe Python pour spécifier les valeurs octales est légèrement différente de celle de nombreux autres langages. Par exemple, si vous essayez quelque chose comme ceci, vous obtiendrez une erreur de syntaxe:

>>> import os
>>> os.chmod('code.py', 0755)
  File "<stdin>", line 1
    os.chmod('code.py', 0755)
                           ^
SyntaxError: invalid token
>>>

Veillez à préfixer la valeur octale avec 0o, comme illustré ici:

>>> os.chmod('code.py', 0o755)
>>>

LAISSER UN COMMENTAIRE

Please enter your comment!
Please enter your name here