Java
位运算
Java 位运算[转]一,Java 位运算1.表示方法: 在Java语言中,
二进制
数使用
补码
表示,最高位为符号位,正数的符号位为0,
负数
为1。补码的表示需要满足如下要求。 (l)正数的最高位为0,其余各位代表数值本身(二进制数)。 (2)对于负数,通过对该数
绝对值
的补码按位取反,再对整个数加1。2.位
运算符
位运算表达式由操作数和位运算符组成,实现对整数类型的二进制数进行位运算。位运算符可以分为
逻辑运算符
(包括~、&、|和^)及
移位运算符
(包括>>、<<和>>>)。1)左移位运算符(<<)能将运算符左边的运算对象向左移动运算符右侧指定的位数(在低位补0)。2)“有符号”右移位运算符(>>)则将运算符左边的运算对象向右移动运算符右侧指定的位数。“有符号”右移位运算符使用了“符号扩展”:若值为正,则在高位插入0;若值为负,则在高位插入1。3)Java也添加了一种“无符号”右移位运算符(>>>),它使用了“零扩展”:无论正负,都在高位插入0。这一运算符是C或C++没有的。
public class Test3 {
public static void main(String[] args)
{
int i=4;
System.out.println(~i);//-5 (i的二进制为0100
System.out.println(~i&i);//0
System.out.println(~i|i);//-1
System.out.println(i>>2);//1
System.out.println(i<<2);//16
System.out.println(i>>>2);//1
System.out.println(-i>>2);//-1
System.out.println(-i>>>2);//1073741823
}
public class Test3 {
public static void main(String[] args)
{
int i=4;
System.out.println(~i);//-5 (i的二进制为0100
System.out.println(~i&i);//0
System.out.println(~i|i);//-1
System.out.println(i>>2);//1
System.out.println(i<<2);//16
System.out.println(i>>>2);//1
System.out.println(-i>>2);//-1
System.out.println(-i>>>2);//1073741823
}
}
摘自:http://hi.baidu.com/ruilixinxiang/blog/item/d4de4203b72a02154bfb51b4.html