ASCII 문자를 숫자 값으로 변환,
unsigned char ascii2value (unsigned char c)
{ if ( '0'<= c && c <= '9') return c- '0'; 그렇지 않으면 ( 'a'<= c && c <= 'f') return c- 'a'+ 10; 그렇지 않으면 ( 'A'<= c && c <= 'F') return c- 'A'+ 10; 그렇지 않으면 abort (); }
반대로 16 진수 값을 ASCII 문자로 변환하는 기능은 다음과 같습니다.
unsigned char val2char (unsigned char c)
{ if (0 <= c && c <= 9) return c + '0'; 그렇지 않으면 (10 <= c && c <= 15) return c-10 + 'A'; 그렇지 않으면 abort (); }
사용 예 :
把 一个 HEX 串 0xXX 0xXX 以 字符 的 形式 输出
std :: string HexToAscii (char * inBuf, int numBytes) { int len = numBytes << 1; 부호없는 문자 cch = 0, lch = 0, uch = 0; std :: string str; for (int i = 0; i <numBytes; i + = 1) { cch = * inBuf ++; uch = val2char ((cch & 0xF0) >> 4); lch = val2char (cch & 0x0F); str.append ( "0x"); str.push_back (uch); str.push_back (lch); str.append ( ""); } return str; }
예 : char [2] = {0xAB, 0xAC},
HexToAscii (char, 2)가 반환하는 것은 "0xAB 0xAC"문자열입니다.