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