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 :
Compléter la fonction binaire
basée sur la méthode des divisions successives permettant de
convertir un nombre entier positif en binaire.
Le tableau BITS
permet d'obtenir la chaîne de caractères
correspondant à un bit à partir de sa valeur.
Exemples
>>> BITS[0]
'0'
>>> BITS[1]
'1'
>>> binaire(0)
'0'
>>> binaire(1)
'1'
>>> binaire(16)
'10000'
>>> binaire(77)
'1001101'
BITS = ['0', '1']bksl-nlbksl-nldef binaire(nombre):bksl-nl nombrepy-undbinaire = BITS[...]bksl-nl nombre = nombre // 2bksl-nl while ...:bksl-nl nombrepy-undbinaire = ...[nombre%2] + ...bksl-nl nombre = ...bksl-nl return nombrepy-undbinairebksl-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-nlBITS = ['0', '1']bksl-nlbksl-nldef binaire(nombre):bksl-nl nombrepy-undbinaire = BITS[nombre%2]bksl-nl nombre = nombre // 2bksl-nl while nombre > 0:bksl-nl nombrepy-undbinaire = BITS[nombre%2] + nombrepy-undbinairebksl-nl nombre = nombre // 2bksl-nl return nombrepy-undbinairebksl-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-nl
A
Commentaire⚓︎
autre façon de faire⚓︎
def binaire(nombre):
nombre_binaire = ""
while nombre > 1:
nombre_binaire = str(nombre%2) + nombre_binaire
nombre = nombre // 2
nombre_binaire = str(nombre) + nombre_binaire
return nombre_binaire
Z