程序设计中,位操作运算符的一种。在c++中,移位运算符有双目移位运算符:<<(左移)和>>(右移)。移位运算符组成的表达式也属于算术表达式,其值为算术值。左移运算是将一个二进制位的操作数按指定移动的位数向左移位,移出位被丢弃,右边的空位一律补0。右移运算是将一个二进制位的操作数按指定移动的位数向右移动,移出位被丢弃,左边移出的空位或者一律补0,或者补符号位,这由不同的机器而定。在使用补码作为机器数的机器中,正数的符号位为0,负数的符号位为1。
在Java程序设计中,位移运算符是针对二进制的“位”,它主要包括:左移运算符(<<)、右移运算符(>>)、无符号右移运算符(>>>).
是将运算符左边的对象向左移动运算符右边的指定位数,并且在低位补零。其实,向左移动a位,就相当于乘以2^a
实例
public class data
{
public static void main(String[] args)
{
int a=2;
int b=2;
System.out.println("a的位移结果是:"+(a<<b));
}
}
a位移运算结果是:8
是将运算符左边的对象向右移动运算符右边的指定位数,并且在高位补零。如果是正数则在高位补零;如果是负数则在高位补1。
实例
public class data{
public static void main(String[] args)
{
int a=2;
int b=2;
int c=16;
int d=-16;
System.out.println("c的位移结果是:"+(c>>b));
System.out.println("d的位移结果是:"+(d>>a));
}
}
运算结果
c的位移结果是:4
d的位移结果是:-4
是将运算符左边的对象向右移动运算符右边的指定位数,并在高位补零。其实是右移n位,相当于除以2^n.
实例
public class data{
public static void main(String[] args)
{
int a=16;
int b=2;
System.out.println("a的位移结果是:"+(a>>>b));
}
}
运算结果
a的位移结果是:4