Comment convertir des décimales décimales et binaires en Python

黄舟
Libérer: 2017-10-12 11:12:25
original
9108 Les gens l'ont consulté

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]
Copier après la connexion

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
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal