《深入理解计算机系统》第36页
1、x<<k表示x向左移动k位,丢弃最高的k位,并在右端补k个0.
2、x<<j<<k等价于(x<<j)<<k
3、x>>k,机器支持:逻辑右移和算数右移。逻辑右移在左端补k个0;算术右移在左端补k个最高有效位的值,对有符号数的运算非常有用
4、C语言中unsigned声明的整形对象右移是逻辑的,而有符号数据(默认声明的整形对象),算数的或者逻辑的都行。几乎所有的编译器/机器组合都是对有符号数进行算术右移。
5、JAVA语言中x>>k是算术右移,x>>>k是逻辑右移。
6、当k大于x的位数w时,位移量是通过k mod w 得到
7、C语言中移位运算符优先级小于加减法优先级