十六进制高低位转换问题
你们好!我想将一个十六进制高低位进行转换,即0x12-→0x21。下面代码实现了这个功能,可是当我加上红色那部分代码后(去掉//,把C初值去掉。),输入0x12,结果却是0x3的?请问是什么回事呢?
代码如下:
#include<stdio.h>
int main()
{
char c=0x12;
char a,b;
// printf("输入一个需要转换的十六进制数:");
// scanf("%s",&c);
a=c<<4;
b=c>>4;
c=a|b;
printf("%#x\n",c);
}