- # -*- coding: cp1252 -*-
- #Traduit un exa en decimal et visse-versa.
-
- #Les digits exa-decimaux (vous pouvez les changer pour faire un traducteur decimal-octal, binaire ou autre...Le reste du programme s'adapte tout seul.)
- digits = ["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"]
-
- #Ca retranscrit une table (ex: [14,12,8]) en nombre exa.(ex: 8ce).
- #Attention! le tableau doit etre inverse!!
- def table2exa(table,size):
- c = 1
- nombre = ""
- while c <= size:
- valeur = table[-c]
- c = c + 1
- nombre = nombre + digits[valeur]
- return nombre
-
- #Je ne connait pas la methode 'normale' pour les exposants, alors j'ai créé la mienne.
- def exposant(a,b):
- c = 0
- r = 1
- while c < b:
- r = r * a
- c = c + 1
- return r
-
- #Cette classe definit un nombre decimal.
- class nDecimal:
- nombre = 0
- def __init__(self,valeur):
- self.nombre = valeur
- def translate(self):
- n = self.nombre
- m = 0
- nexa = []
- s = 0
- si = digits.index(digits[-1],-1)+1
- while n != 0:
- s = s + 1
- m = n % si
- n = n / si
- nexa = nexa + [m]
- nombre = table2exa(nexa,s)
- return nombre
- #Cette classe définit un nombre exadecimal.
- class nExadecimal:
- nombre = ""
- def __init__(self,valeur):
- self.nombre = valeur
- def translate(self):
- nombre = self.nombre
- size = nombre.rfind(nombre[-1])+1
- ns = ""
- s = 0
- while s < size:
- s = s + 1
- ns = ns + nombre[-s]
- nombre = digits.index(ns[0])
- si = digits.index(digits[-1],-1)+1
- s = 1
- while s < size:
- nombre = nombre + digits.index(ns[s]) * exposant(si,s)
- s = s + 1
- return nombre
# -*- coding: cp1252 -*-
#Traduit un exa en decimal et visse-versa.
#Les digits exa-decimaux (vous pouvez les changer pour faire un traducteur decimal-octal, binaire ou autre...Le reste du programme s'adapte tout seul.)
digits = ["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"]
#Ca retranscrit une table (ex: [14,12,8]) en nombre exa.(ex: 8ce).
#Attention! le tableau doit etre inverse!!
def table2exa(table,size):
c = 1
nombre = ""
while c <= size:
valeur = table[-c]
c = c + 1
nombre = nombre + digits[valeur]
return nombre
#Je ne connait pas la methode 'normale' pour les exposants, alors j'ai créé la mienne.
def exposant(a,b):
c = 0
r = 1
while c < b:
r = r * a
c = c + 1
return r
#Cette classe definit un nombre decimal.
class nDecimal:
nombre = 0
def __init__(self,valeur):
self.nombre = valeur
def translate(self):
n = self.nombre
m = 0
nexa = []
s = 0
si = digits.index(digits[-1],-1)+1
while n != 0:
s = s + 1
m = n % si
n = n / si
nexa = nexa + [m]
nombre = table2exa(nexa,s)
return nombre
#Cette classe définit un nombre exadecimal.
class nExadecimal:
nombre = ""
def __init__(self,valeur):
self.nombre = valeur
def translate(self):
nombre = self.nombre
size = nombre.rfind(nombre[-1])+1
ns = ""
s = 0
while s < size:
s = s + 1
ns = ns + nombre[-s]
nombre = digits.index(ns[0])
si = digits.index(digits[-1],-1)+1
s = 1
while s < size:
nombre = nombre + digits.index(ns[s]) * exposant(si,s)
s = s + 1
return nombre