Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
code_gray [2008/07/09 07:15] 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é: | + | Code proposé |
<code python> | <code python> | ||
Ligne 48: | Ligne 48: | ||
# -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||
from __future__ import division | from __future__ import division | ||
+ | # Python v2.7 | ||
- | def dec2gray(n,nb=8): | + | def dec2gray(num): |
- | | + | |
- | | + | |
- | ch+=" | + | |
- | return ch | + | # dec2bin améliore l' |
+ | dec2bin | ||
# exemple d' | # exemple d' | ||
- | print dec2gray(14) | + | print dec2bin(dec2gray(14)) |
- | print dec2gray(14, | + | # affiche: " |
+ | |||
+ | print dec2bin(dec2gray(14), | ||
+ | # affiche: " | ||
</ | </ | ||
- | En entrée de cette fonction, | + | En entrée de cette fonction |
===== Conversion inverse ===== | ===== Conversion inverse ===== | ||
- | Pour obtenir le nombre décimal correspondant à un code de Gray donné: | + | Pour obtenir le nombre décimal correspondant à un code de Gray donné |
<code python> | <code python> | ||
- | def gray2dec(ch): | + | def gray2dec(num): |
- | | + | "" |
- | | + | |
- | return 0 | + | while True: |
- | lg=len(ch) | + | |
- | k=lg-i | + | |
- | n=(2**k)-(2**(k-1)) | + | |
- | while k>1: | + | |
- | | + | |
- | | + | |
- | | + | |
- | while (2*y+b)*(2**k)-(2**(k-1))+(2**k)-1 < n: | + | |
- | | + | |
- | | + | |
- | if np>n: | + | |
- | n=np | + | |
- | return n | + | |
# exemple d' | # exemple d' | ||
- | print gray2dec(" | + | print gray2dec(int(" |
</ | </ | ||
- | En entrée de cette fonction, | + | En entrée de cette fonction, |
+ | |||
+ | \\ | ||
+ | Amusez-vous bien! | ||
- | Vous pouvez tester ces fonctions sur ma Calculext en ligne: [[http:// | ||
< | < |