C ++에서 ASCII 코드와 16 진수 16 진수 간의 변환

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"문자열입니다.

 

 

추천

출처blog.csdn.net/tanmx219/article/details/114952396