Base 10 à base X , et de base X à base 10
Publié : jeu. 12/juin/2008 16:12
Bonjour,
Je vous présente deux petites procédures que j’avais faites pour passer le temps.
Ce sont deux procédures de conversion de base 10 à base X , et de base X à base 10.
Tout est expliqué dans le code source :
Note : on peut élargir le nombre de bases en passant en mode Unicode.

Je vous présente deux petites procédures que j’avais faites pour passer le temps.
Ce sont deux procédures de conversion de base 10 à base X , et de base X à base 10.
Tout est expliqué dans le code source :
Code : Tout sélectionner
;==============================================================================
;| Programme de conversion [Base(X) à Base(10)] ou de [Base(10) à Base(X)] |
;| By Mytic. |
;==============================================================================
;Pb : 4.20
;Note : Que sur des entiers
;_______________________________________________( les procedures de conversion )
Procedure.s Dec_to_BaseX(nombre.l,base.c)
r.l = 0
t$ = ""
Repeat
r = nombre % base : nombre = (nombre / base)
If r>9
c = 87+r
t$=t$ + Chr(c)
Else
t$=t$+Str(r)
EndIf
Until nombre = 0
For i = Len(t$) To 1 Step -1
n$ = n$ + Mid(t$,i,1)
Next i
ProcedureReturn n$
EndProcedure
Procedure.l BaseX_to_Dec(nombre.s,base.c)
n.l=0
m.l=0
For i = Len(nombre) To 1 Step -1
m=Pow(base,Len(nombre)-i)
l$ = Mid(nombre,i,1)
If Asc(l$) >= 97
n = n + (Asc(l$)-87)*m
Else
n = n + (Val(l$)*m)
EndIf
Next i
ProcedureReturn n
EndProcedure
;________________________________________________________________________________
;==== Exemples :
Debug Dec_to_BaseX(255,16) ; converti le décimal 255 (base 10) en base 16 (hexadécimal)
Debug BaseX_to_Dec("1000",2) ; converti le binaire 1000 (base 2) en base 10 (décimal)
Debug Dec_to_BaseX(255,30) ; converti 255 (décimal) en base 30
Debug BaseX_to_Dec("8f",30) ; converti 8f ( base 30 ) en base 10
