左移运算符<<:在右侧插入值为0的二进制位,可看作逻辑左移
右移运算符<<:在左侧插入符号位相应的二进制位,当操作数为有符号数时,为算数右移,当操作数为无符号数时,为逻辑右移
代码示例如下:
int x = -1;
cout<<(unsigned int)x<<endl;
cout<< (x<<1) <<endl
<<(x>>1)<<endl
<<((unsigned int)x<<1)<<endl
<<((unsigned int)x>>1)<<endl;
左移运算符<<:在右侧插入值为0的二进制位,可看作逻辑左移
右移运算符<<:在左侧插入符号位相应的二进制位,当操作数为有符号数时,为算数右移,当操作数为无符号数时,为逻辑右移
代码示例如下:
int x = -1;
cout<<(unsigned int)x<<endl;
cout<< (x<<1) <<endl
<<(x>>1)<<endl
<<((unsigned int)x<<1)<<endl
<<((unsigned int)x>>1)<<endl;