De parca se intampla adesea, intrebarea dumneavoastra sufera de o eroare terminologica/ambiguitate grava. În limbajul comun, de obicei nu contează, dar în contextul acestei probleme specifice este foarte important.
Vedeți, nu există nici un fel de "valoare hex" și "valoare zecimală" (sau "număr hexadecimal" și "număr zecimal"). "Hex" și "decimal" sunt proprietăți ale reprezentărilor ale valorilor. Între timp, valorile (sau numerele) nu au o singură reprezentare, deci nu pot fi "hex" sau "zecimal". De exemplu, 0xF
și 15
în sintaxa C sunt două reprezentări diferite ale aceluiași număr .
Aș sugera că întrebarea dvs., așa cum este aceasta, sugerează că trebuie să convertiți reprezentarea hexagonală ASCII a unei valori (adică un șir) într-o reprezentare zecimală ASCII a unei valori (alt șir). O modalitate de a face aceasta este folosirea unei reprezentări întregi ca una intermediară: în primul rând, convertiți reprezentarea hexagonală ASCII la un întreg cu o dimensiune suficientă (folosind funcțiile din grupul strto ...
, ca strtol
), apoi convertiți întregul în reprezentarea zecimală ASCII (folosind sprintf
).
Dacă nu este ceea ce trebuie să faceți, atunci trebuie să vă clarificați întrebarea, deoarece este imposibil să vă dați seama de modul în care este formulată întrebarea dvs.