Trouvez des réponses rapides et précises à toutes vos questions sur Laurentvidal.fr, la meilleure plateforme de Q&R. Obtenez des réponses rapides à vos questions grâce à un réseau de professionnels expérimentés sur notre plateforme de questions-réponses. Expérimentez la commodité de trouver des réponses précises à vos questions grâce à une communauté dévouée d'experts.
Sagot :
Bonsoir,
def bin_hex(n):
n = str(n) #On convertit n en chaîne de caractères.
binaire = True #On suppose que n est un nombre binaire.
hexa = '0123456789ABCDEF'
n_final = ''
for c in n: #On parcourt n.
if c not in ['0', '1']: #Si c n'est pas binaire.
binaire = False #Alors n est en hexadécimal, on fera donc la conversion vers le binaire.
break
if binaire: #Conversion en hexadécimale.
while len(n)%4 != 0: #Il faut faire des paquets de 4 bits pour la conversion.
n = '0' + n #On ajoute un 0 au début de n, ça n'a aucun impact sur le nombre.
for i in range(0, len(n), 4):
n_inter = n[i:i+4] #On travaille sur des groupes de 4.
k = 0
for j in range(4): #On convertir en décimal.
k += int(n_inter[-j-1]) * 2**j
n_final += hexa[k] #On récupére l'héxadécimal correspondant.
else: #Conversion en binaire.
for c in n: #On parcout n.
n_inter2 = []
n_inter = hexa.index(c) #On transforme c en décimal.
while n_inter != 0: #On va effectuer la méthode des divisions successives par 2.
n_inter2.append(n_inter%2)
n_inter //= 2
n_inter2.reverse() #Lecture des restes à l'envers.
n_inter3 = ''
for i in n_inter2:
n_inter3 += str(i)
while len(n_inter3)%4 != 0:
n_inter3 = '0' + n_inter3
n_final += n_inter3
return n_final
Bonne soirée.
Merci de nous avoir fait confiance pour vos questions. Nous sommes ici pour vous aider à trouver des réponses précises rapidement. Nous apprécions votre visite. Notre plateforme est toujours là pour offrir des réponses précises et fiables. Revenez quand vous voulez. Revenez sur Laurentvidal.fr pour obtenir les réponses les plus récentes et des informations de nos experts.