Java 位运算_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > Java 位运算

Java 位运算

 2015/3/9 19:15:22  Javahuhui  程序员俱乐部  我要评论(0)
  • 摘要://左移(<<)低位补0//00000000000000000000000000000110然后左移2位后,低位补0://00000000000000000000000000011000System.out.println(6<<2);//运行结果是24//右移(>>)高位补"符号位"//00000000000000000000000000000110然后右移2位,高位补0://00000000000000000000000000000001System
  • 标签:
// 左移( << ) 低位补0
// 0000 0000 0000 0000 0000 0000 0000 0110 然后左移2位后,低位补0:
// 0000 0000 0000 0000 0000 0000 0001 1000
System.out.println(6 << 2);// 运行结果是24

// 右移( >> ) 高位补"符号位"
// 0000 0000 0000 0000 0000 0000 0000 0110 然后右移2位,高位补0:
// 0000 0000 0000 0000 0000 0000 0000 0001
System.out.println(6 >> 2);// 运行结果是1
//-6换算二进制后为:0110 取反加1,即
//1111 1111 1111 1111 1111 1111 1111 1010 然后右移2位,高位补1:
//1111 1111 1111 1111 1111 1111 1111 1110
System.out.println(-6>> 2);// 运行结果是-2

// 无符号右移( >>> ) 高位补"符号位"
// 0000 0000 0000 0000 0000 0000 0000 0110 然后右移2位后,高位补0:
//0000 0000 0000 0000 0000 0000 0000 0001
System.out.println(6 >>> 2);// 结果是1
//1111 1111 1111 1111 1111 1111 1111 1010 然后右移2位,高位补1:
// 1111 1111 1111 1111 1111 1111 1111
System.out.println(-6 >>> 2);// 结果是1073741822

// 位与( & )
// 位与:第一个数与第二个数,同位且都为1,那么对应位数也为1,否则为0
//0000 0000 0000 0000 0000 0000 0000 0110 &
0000 0000 0000 0000 0000 0000 0000 0010
//0000 0000 0000 0000 0000 0000 0000 0010
System.out.println(6 &2);// 结果为2

// 位或( | )
//第一个数与第二个数,同位且只要有一个是1,那么对应位数也为1,否则为0
//0000 0000 0000 0000 0000 0000 0000 0110 &
//0000 0000 0000 0000 0000 0000 0000 0011
//0000 0000 0000 0000 0000 0000 0000 0111
System.out.println(6 | 3);// 结果为7

// 位异或( ^ )
//第一个数与第二个数,同位且数值相反,那么那么对应位数为1,否则为0
//0000 0000 0000 0000 0000 0000 0000 0110 &
//0000 0000 0000 0000 0000 0000 0000 0011
//0000 0000 0000 0000 0000 0000 0000 0101
System.out.println(6 ^ 3);//结果为5

// 位非( ~ )
// 对应位数取反值
//0000 0000 0000 0000 0000 0000 0000 0110 取反
//1111 1111 1111 1111 1111 1111 1111 1001
System.out.println(~6);// 结果为-7
  • 相关文章
发表评论
用户名: 匿名