左移(<<)运算
左移运算符为<<。将一个数a向左移动n位记为:a<<n。比如将12向左移动2位如何计算呢?12的二进制为00001100,那么左移动2位为:00110000。无论左移还是右移,都需要用0或者1去填充移动之后空位。在左移的过程中,右边一律用0去填充。左移就没有右移那样分为逻辑右移和算术右移。
比如,将10左移2位,由于10的二进制为:00001010,那么左移2位,右边用零填充的结果为:00101000。
将一个数左移N位相当于将一个数乘以2N,而将一个数右移N位相当于将这个数除以2N。
int main(void)
{
int a = 10;
int b = a<<2;
printf(“b=%d\n”,
b);
return 0;
}
上述位运算符的优先级列表如下:
实际上,在讲解运算符的第5章就已经将各个运算符的优先级列了出来。因此,牢牢记住整个运算符的优先级,就没有问题。