c语言中,有符号数位移 #include <stdio.h>intmain(void) { unsigned i=0xcffffff3;longj=0xcffffff3;intk=0xcffffff3; printf("num:\t%x\n",0xcffffff3>>2); printf("i:\t%x\n",i >>2); printf("j:\t%x\n",j >>2); printf("k:\t%x\n",k >>2); } 打印结果 sh-3.2# ./...
左移右移并不会改变原值,例如 int a = 1;a<<2;printf("%d", a); //输出还是1 如果你问的是 int a=1;a=a<<2;a=a>>2;那么最终a的值还是1 但是如果溢出了就移不回来了