oder so:
(*) << 4: Ich weiß nicht ob beim left-shift mit nullen aufgefüllt wird
Weiß das zufällig jemand?
---
Ich weiß nicht ob diese Funktion schneller ist als deine, aber sie ist auf jeden fall kürzer
Code:
char *HexToDec(const char *quellstr, char *zstr)
{
char mask = ~0xF; // = ~15 = 11110000
int i, len = strlen(quellstr);
long ergebnis = 0;
for(i = 0; i < len; i++)
ergebnis = ((ergebnis << 4) & mask) | HexToInt(quellstr[i]);
sprintf(zstr, "%ld", ergebnis);
return zstr;
}
Weiß das zufällig jemand?
---
Ich weiß nicht ob diese Funktion schneller ist als deine, aber sie ist auf jeden fall kürzer
Code:
char HexToInt(char c)
{
if(c >= '0' && c <= '9')
return (c - '0');
if(c >= 'a' && c <= 'f')
return (c - 'a' + 10);
if(c >= 'A' && c <= 'F')
return (c - 'A' + 10);
return 0;
}