4.5.5 向左移位运算符
对值执行向左移位运算时,按照字面的意思,值中包含的位将向左移动。与该操作关联的是该值要移动的位置(或位)数目。超出数据项的高位的位将丢失,而从低位移入的值总为0。因此,如果w1等于3,那么表达式
w1=w1<<1;
可同样表示成
w1<<=1;
结果就是3向左移一位,这样产生的6将赋值给w1。
w1……0000 0011 0x03
w1<<1……0000 0110 0x06
<<运算符左侧的运算数表示将要移动的值,而右侧的运算数表示该值所需移动的位数。如果将w1再向左移动一次,那么会得到十六进制值0c:
w1……0000 0110 0x06
w1<<1……0000 1100 0x0c