假设只有一个字节,即最多有8个bit位
那么从“0x21”到0x21,思路如下:
uchar *s = "0x21";
uchar c1 = s[2];
uchar c2 = s[3];
//开始处理c1,c2 同理,这里只处理c1了
//如果c1 是0~9
if(48=<c1<=57)
{
c1 -= 48;//减掉48的原因是 c1现在还是ascii编码,0-9对应的值是48-57,减掉48,刚好就是0-9了,下面的减掉55同理
}else if(65 <= c1 <= 70) //如果c1 是A~F,
{
c1 -= 55;
}else{//超出范围啦
//错误处理
}
//处理c2
uchar result = ((c1<<4)&0xf0) | (c2&0x0f);
return reslut;
result 就是0x21了