View Full Version : Conversione Esandecimale
Come si fa la conversione HEX->DEC e viceversa??
Mi interessa prima come farlo io poi come farlo fare al C.
Tnk 10000000
qui trovi un programmino che lo fa in VB http://www.webngo.net/aspstuff/script/dec2hex.asp
questo invece lo fa in c ma è un po più generico perchè devi scegliere la base...
http://www.itis.mn.it/linux/terza/conversione.htm
e
http://www.itis.mn.it/linux/terza/conversione2.htm
se invece ti interessa solo come si fa a fare la conversione numerica vai qui:
http://a2.swlibero.org/a214.html
wow una tipa (dal nick sembrerebbe) nuova sul forum! :)
il tuo intervento è già completo, non c'è bisogno di aggiungere altro direi ;)
Originariamente inviato da recoil
wow una tipa (dal nick sembrerebbe) nuova sul forum! :)
:sofico:
mai fidarsi delle apparenze..
:Perfido:
:D
int a=16;
int b=17;
std::cout<<std::hex<<std::showbase<<a<<'\n';
std::cout<<b<<'\n';
per fare la funzione inversa:
adoperare come input intermedio uno stringstream dove riversare
la stringa scritta in esa quindi assegnare alla varialbile intera direttamente il contenuto dello stream con l'operatore >>.
Almeno credo :)
In C:
char exa[100];
sprintf(exa, "%X", numero_intero);
Poi se invece ti interessa l'algoritmo: c'è un algoritmo generico per la conversione da base alpha a base beta...
trovato l'algoritmo
3AB2 è equivalente a : 2 * 16 ^ 0 + 11 * 16 ^ 1 + 10 * 16 ^ 2 + 3 * 16 ^ 3,
quindi svolgendo i calcoli 15026 in decimale
Originariamente inviato da cionci
Bravo... ;)
tnk!
E che l'algebra che ho per la verifica di domani mi ha aiutato.
Quindi anche x l'ottale è + o - cosi?
E' identico...cambia solo la base...
questa funzione (vedi allegato) converte da qualunque base a qualunque altra:
Function f_CnvBase(n1$, b1, b2)
aaa$ = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
If b1 < 2 Or b1 > 62 Then f_CnvBase = "bad first base": Exit Function
n = 0
For k = 1 To Len(n1$)
a1 = InStr(aaa$, Mid$(n1$, k, 1)) - 1
If a1 < 0 Or a1 >= b1 Then f_CnvBase = "bad format number": Exit Function
n = n * b1 + a1
Next k
If b2 < 2 Or b2 > 62 Then f_CnvBase = "bad second base": Exit Function
Do While n > 0
a2 = n Mod b2
n = Int(n / b2)
n2$ = Mid$(aaa$, a2 + 1, 1) & n2$
Loop
f_CnvBase = n2$
End Function
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.