看看在VC下的测试 #include "stdafx.h"
int main(int argc, char* argv[]) { int a = -1000; printf ("%d, %#x, %#x
",a,a>>1,a/2); printf ("%d, %#x, %#x
",a,a>>2,a/4);
unsigned int b = -1000; printf ("%d, %#x, %#x
",b,b>>1,b/2); printf ("%d, %#x, %#x
",b,b>>2,b/4); return 0; } 看看运行结果 //带符号的 -1000, 0xfffffe0c, 0xfffffe0c //>>1 /2 -1000, 0xffffff06, 0xffffff06 //>>2 /4 //无符号的 -1000, 0x7ffffe0c, 0x7ffffe0c //>>1 /2 -1000, 0x3fffff06, 0x3fffff06 //>>1 /2 //也就是VC下面是会进行符号扩展 |