<<:左移
1.无符号左移:
unsigned int a = 3 << 3;
printf("%d\n",a);// 24
2.有符号左移
int a = -3 << 3;//-24
printf("%d\n",a);
>> : 右移
无符号右移
unsigned char a = 151 >> 5;
printf("%d\n",a);//4
有符号右移
char a = -96 >> 5;
printf("%d\n",a);//-3
注意:
1.在进行移位运算的时候,凡是被移出去的位都丢弃,凡是空出来的都补零,移位运算是针对的是无符号整数。
2. 如果非要进行有符号的移位运算,那么左移的时候,空出来的补0,右移的时候,空出来补符号位(原码阶段);