Aller au contenu

Conversion d'entiers en base 10 vers la base 2⚓︎

Pour rappel, la conversion d'un nombre entier positif en binaire peut s'effectuer à l'aide des divisions successives comme illustré ici :

image

La fonction binaire basée sur la méthode des divisions successives permet de convertir un nombre entier positif en binaire. Elle renvoie une chaine de caractères.

Exemple

🐍 Console Python
>>> binaire(0)
'0'
>>> binaire(1)
'1'
>>> binaire(16)
'10000'
>>> binaire(77)
'1001101'
Compléter la fonction binaire

###
# Testsbksl-nlbksl-nlassert binaire(0) == '0'bksl-nlassert binaire(1) == '1'bksl-nlassert binaire(16) == '10000'bksl-nlassert binaire(77) == '1001101'bksl-nlbksl-nl# Autres testsbksl-nlbksl-nlassert binaire(999) == '1111100111'bksl-nlassert binaire(1234567890) == '1001001100101100000001011010010'bksl-nlassert binaire(4) == '100'bksl-nlassert binaire(256) == '100000000'bksl-nlassert binaire(255) == '11111111'bksl-nlbksl-nl 5/5
def binaire(a):bksl-nl '''convertit un nombre entier a en sa representationbksl-nl binaire sous forme de chaine de caractères.'''bksl-nl if a == 0:bksl-nl return ...bksl-nl binpy-unda = ...bksl-nl while ... :bksl-nl binpy-unda = ... + binpy-undabksl-nl a = ...bksl-nl return binpy-undabksl-nlbksl-nl# Testsbksl-nlbksl-nlassert binaire(0) == '0'bksl-nlassert binaire(1) == '1'bksl-nlassert binaire(16) == '10000'bksl-nlassert binaire(77) == '1001101'bksl-nlbksl-nlbksl-nlbksl-nldef binaire(a):bksl-nl '''convertit un nombre entier a en sa representation bksl-nl binaire sous forme de chaine de caractères.'''bksl-nl if a == 0:bksl-nl return '0' bksl-nl binpy-unda = '' bksl-nl while a != 0 : bksl-nl binpy-unda = str(a % 2) + binpy-unda bksl-nl a = a // 2bksl-nl return binpy-undabksl-nlbksl-nl