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

进制转换有关问题

2012-02-15 
进制转换问题在一个textbox控件中输入abcd1234,利用函数GetCtrlVal得到该值存入到char数组里面,但现在是一

进制转换问题
在一个textbox控件中输入abcd1234,利用函数GetCtrlVal得到该值存入到char数组里面,但现在是一个字符占一个字节,为ASC码格式,我该怎样转换才能得到0xab 0xcd 0x12 0x34,请问高手该怎样编程解决这个问题?

[解决办法]

C/C++ code
#include <stdio.h>#include <string.h>static const unsigned char ASC_HEX_TAB[] = {    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,    0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15,    0, 10, 11, 12, 13, 14, 15,  0,  0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,    0, 10, 11, 12, 13, 14, 15,  0,  0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};char *pack(const char *srcbuf, int srclen, char *dstbuf, int *dstlen){        int i;        *dstlen = (srclen + 1) / 2;        for (i = 0; i < *dstlen; i++) {                dstbuf[i]  = ASC_HEX_TAB[(unsigned char)srcbuf[i * 2]] << 4;                dstbuf[i] |= ASC_HEX_TAB[(unsigned char)srcbuf[i * 2 + 1]];        }        return dstbuf;}intmain(void){        char buf[80 + 1];        int i, len;        pack("abcd1234", 8, buf, &len);        for (i = 0; i < len; i++)                printf("%02hhx", buf[i]);        printf("\n");        return 0;} 

热点排行