C语言的char类型位移运算过程中会将char 类型提升为int 类型
已知:32位机,小端字节序(低位字节存低位数据,高位字节存高位数据)一位16进制数占半个字节即4bit位
#include<stdio.h>
int main()
{
unsigned char a = 0xAB;
unsigned short b = 0;
printf("左移4位前\n");
printf("a = %#X\n",a);
b = a << 4;
printf("左移4位后\n");
printf("b = %#X\n",b); //输出结果中只保留了4bit低位的数据
return 0;
}
运算结果: