Décimal → binaire
divisionsDiviser par 2, garder les restes, lire du dernier reste au premier.
13 // 2 → reste 1LSB
quotient // 2Répéter
Résultat
1101₂
Binaire ↔ décimal
Diviser par 2, garder les restes, lire du dernier reste au premier.
13 // 2 → reste 1quotient // 2valeur = valeur×base + chiffre, de gauche à droite.
valeur = valeur * 2 + bithorner([1,1,0,1])def decimal_vers_binaire(nombre):
if nombre == 0:
return "0"
bits = []
while nombre > 0:
bits.append(str(nombre % 2))
nombre //= 2
return "".join(reversed(bits))
print(decimal_vers_binaire(13)) # 1101
def horner(liste_chiffres, base=2):
valeur = 0
for chiffre in liste_chiffres:
valeur = valeur * base + int(chiffre)
return valeur
print(horner([1, 1, 0, 1])) # 13
def binaire_vers_decimal(liste_bits):
total = 0
for position, bit in enumerate(reversed(liste_bits)):
total += int(bit) * (2 ** position)
return total
print(binaire_vers_decimal([1, 0, 1, 1])) # 11
Somme pondérée : N = Σ bi·2^i (directe mais coûteuse en puissances).