首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

字符 跟 十六进制ASCII码转换

2013-11-03 
字符 和 十六进制ASCII码转换怎么样把字符 转换成十六进制ASCII码怎么样把长串数字的每个数字分别转换成十

字符 和 十六进制ASCII码转换
怎么样把字符 转换成十六进制ASCII码
怎么样把长串数字的每个数字分别转换成十六进制ASCII码
[解决办法]
关于第一个问题


/*----------------------------------------------------------------
【函数介绍】: 将ASCII码转化成十六进制表示
【入口参数】: buf ascii码字符串
  len 字符串buf的长度 
【返回  值】: 返回对应的十六进制的值 
【出口参数】: (无)
-----------------------------------------------------------------*/ 
char*  CTCPClient_CE::ascii2hex(char* chs,int len)  
{  
//用于接收到的串转换成要用的十六进制串返回主窗口调用
char hex[16] = {'0', '1', '2', '3', '4', '5', '6', '7', '8','9', 'A', 'B', 'C', 'D', 'E', 'F'};

char *ascii = (char*)calloc ( len * 3 + 1, sizeof(char) );// calloc ascii
    
    int i = 0;
    while( i < len )
    {
int b= chs[i] & 0x000000ff;
        ascii[i*2] = hex[b/16] ;
        ascii[i*2+1] = hex[b%16] ;
        ++i;
    }
    return ascii;                    // ascii 返回之前未释放



第二个问题 我理解的是 比如是int型的数字转化成十六进制?

先使用sprintf把int转化为ASCII码,然后再通过上面的函数转化为16进制的ASC码表示

热点排行