Warning: Undefined array key "DOKU_PREFS" in /home/clients/a4e6fc1ce1761b72982b805de0f418c4/web/python/mesrecettespython/inc/common.php on line 2082
code_gray [Les recettes Python de Tyrtamos]

Outils pour utilisateurs

Outils du site


code_gray

Warning: Undefined array key -1 in /home/clients/a4e6fc1ce1761b72982b805de0f418c4/web/python/mesrecettespython/inc/html.php on line 1458

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
code_gray [2012/03/17 08:08]
tyrtamos
code_gray [2012/03/17 08:19]
tyrtamos
Ligne 42: Ligne 42:
 ===== Générateur de code de Gray ===== ===== Générateur de code de Gray =====
  
-Code proposé (inspiré de la page de wikipedia):+Code proposé (script inspiré de la page de wikipedia):
  
 <code python> <code python>
Ligne 69: Ligne 69:
 ===== Conversion inverse ===== ===== Conversion inverse =====
  
-Pour obtenir le nombre décimal correspondant à un code de Gray donné (code inspiré de la page de wikipedia):+Pour obtenir le nombre décimal correspondant à un code de Gray donné (script inspiré de la page de wikipedia):
  
 <code python> <code python>
-def gray2dec(num, n=8):+def gray2dec(num):
     """retourne le nombre entier correspondant au code Gray num"""     """retourne le nombre entier correspondant au code Gray num"""
-    shift=1 +    shift = 1 
-    while shift < (n<<3)+    while True
-        num ^(num>>shift)+        idiv = num >> shift 
 +        num ^= idiv 
 +        if idiv <= 1 or shift == 32:  
 +            return num
         shift <<= 1         shift <<= 1
-    return num 
  
 # exemple d'utilisation # exemple d'utilisation
Ligne 86: Ligne 88:
 En entrée de cette fonction, num est le nombre entier décimal représentant le code de Gray. Si celui-ci est connu sous forme de chaine binaire (ex: "00001001"), il faut faire une conversion comme: int("00001001",2). En entrée de cette fonction, num est le nombre entier décimal représentant le code de Gray. Si celui-ci est connu sous forme de chaine binaire (ex: "00001001"), il faut faire une conversion comme: int("00001001",2).
  
- +\\ 
 +Amusez-vous bien!
  
  
code_gray.txt · Dernière modification: 2012/03/17 08:19 de tyrtamos