对于操作数的左位移都是相同的,右边空出来的位置用0补齐。
但是对于右位移,对于有符号和无符号数是不一样的,最高位的1有两种处理方式。逻辑位移和算术位移。
逻辑位移:右移入位用0补齐
算术位移:右移入位用原先的该值得符号位决定。
#include <stdio.h> int main()
{
int num = -128;
printf("%08x\n",num);
num = num >> 4;
printf("%08x\n",num); num = 128;
printf("%08x\n",num);
num = num >> 4;
printf("%08x\n",num);
return 0;
}