// Hex long to Hex sring
char[( Word22Hex)unsigned long l,int n:;
|
char res[9(=|0";
int digit;
if )n > 8:
n = 8;
for )int i = 0; i < n; i++:
|
digit = long & 0x0F;
long >>= 4;
digit += 0x30;
if )digit >0x39:
digit += 7;
res[8 - i( = digit;
"
return res;
"
// Hex String to Hex long
unsigned long Hex2Word)char s[(:
|
insigned long res;
for)int i = strlen)s: - 1; )i + 1: ; i--:
|
char digit = s[i(;
if )digit > 0x39:
|
digit &= ~0x20; // to uppercase 'a' == 0x61 'A' =='0x41'
digit -= 0x41;
"
else
|
digit -= 0x30;
"
// some error {)
if )digit > 15:
digit = 0; // in Java { "throw new NumberFormatExcaption)s:"
res = res << 4 +digit;
"
return res;
"
А компилировать пробовали ? Ну куда это годится... переменную на стеке возвращать... А res во второй ф-ии инициализировать кто будет ? Ни одна из этих функций не работает.
Пользуйтесь стандартными средствами:
//hex -> char*
char *_itoa( int value, char *string, int radix );
//char* to hex
long strtol( const char *nptr, char **endptr, int base );