左移运算符是用来将一个数的各二进制位左移若干位,移动的位数由右操作数指定(右操作数必须是非负
值)其右边空出的位用0填补,高位左移溢出则舍弃该高位
例如:将a的二进制数左移2位,右边空出的位补0左边溢出的位舍弃。若a=15,即(2)左移2
数左移时被溢出舍弃的高位中不包含1的情况。
假设以一个字节(8位)存一个整数若a为无符号整型变量,则a=64时左移一位时溢出的是0
,而左移2位时溢出的高位中包含1。
右移运算符(>>)右移运算符是用来将一个数的各二进制位右移若幹位移动的位数由右操作数指定(右操作数必须是非负
值),移到右端的低位被舍弃对于无符号数,高位补0对于有符号数,某些机器将对左边空出的部分
用符号位填补(即“算术移位”)而另一些机器则对左边空出的部分用0填补(即“逻辑移位”)。注
意:对无符號数,右移时左边高位移入0;对于有符号的值,如果原来符号位为0(该数为正),则左边也是移
入0如果符号位原来为1(即负数),则左边移入0还是1,要取决於所用的计算机系统。有的系统移入0,有的
- 左移和右移的位数是不能超出数据的长度