Maison > Article > développement back-end > Comment convertir des décimales décimales et binaires en Python
Cet article présente principalement la fonction de conversion mutuelle entre décimales et décimales binaires implémentée en Python. Il analyse en détail le principe de conversion mutuelle entre binaire et décimal et les compétences d'implémentation Python associées sous la forme d'exemples spécifiques. référez-vous à lui
L'exemple de cet article décrit la fonction de conversion mutuelle entre décimal décimal et décimal binaire implémentée en Python. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :
Décimal décimal ⇒ Décimal binaire
Multiplier par 2 et arrondir
La partie entière et la partie décimale obtenues en multipliant la fraction décimale par 2,
La partie entière est le nombre binaire correspondant
Multipliez ensuite la partie décimale par 2 (la multiplication précédente vous donnera une nouvelle partie décimale) , et vous obtiendrez les parties entières et décimales.
Répétez cette opération jusqu'à ce que la partie décimale soit 0 ou que l'exigence de précision soit remplie
La première fois que le résultat est le plus élevé, la dernière. time Obtenez le bit le plus bas
tel que :
0,25 binaire
0,25*2=0.5 L'arrondi est 0
0.5*2=1.0 L'arrondi est 1
, c'est-à-dire que le système binaire de 0,25 est 0.01 (La première fois que vous l'obtenez est le bit le plus élevé, la dernière fois que vous l'obtenez est le bit le plus bas)
0,8125 binaire
0,8125*2=1 .625 L'arrondi est 1
0.625*2=1.25 L'arrondi est 1
0.25*2= 0.5 L'arrondi est 0
0.5*2=1.0 L'arrondi est 1
c'est-à-dire, la version binaire de 0.8125 est 0.1101 (Le premier résultat est le bit le plus élevé, le dernier résultat est le bit le plus bas)
def dec2bin(x): x -= int(x) bins = [] while x: x *= 2 bins.append(1 if x>=1. else 0) x -= int(x) return bins print(dec2bin(.8125)) # [1, 1, 0, 1]
Décimal binaire ⇒ Décimal décimal
Après la virgule décimale, de gauche à droite, chaque chiffre représente
def bin2dec(b): d = 0 for i, x in enumerate(b): d += 2**(-i-1)*x return d print(dec2bin(0.8125)) # [1, 1, 0, 1] print(bin2dec(dec2bin(0.8125))) # 0.8125
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!