怎样使得两个ASCII码字符转换为一个字节16进制数据
...你的需求里面没有写0-9.。我还以为你不需要。自己增加一个字符就好了
#include <stdio.h>
#include <stdlib.h>
//ASCII码 ‘A’,‘C’,如何使得该两个字符转换成0xAC
//按照你的要求,应该只能输入ABCDEF这个六个英文汉字
unsigned char change(unsigned char a,unsigned char b)
{
unsigned char ucTmp = 0x00;
if( ( (a >= 'A') && (a <= 'F') )&& ( (b >= 'A') && (b <= 'F') ) )
{
ucTmp = (a - 'A' + 10 << 4) | (b - 'A' + 10 << 0);
}
if( ( (a >= 'a') && (a <= 'f') )&& ( (b >= 'a') && (b <= 'f') ) )
{
ucTmp = (a - 'a' + 10 << 4) | (b - 'f' + 10 << 0);
}
printf("0x%02x",(int)ucTmp);
return ucTmp;
}
int main()
{
change('A','D');
system("pause");
return 0;
}
那0到9呢?不能这样做吗?把‘1’和‘2’变为0x12,谢谢指点!
6666666666666666666666666