标签:需要 二进制 nbsp strong print http com long 一个
java中的位运算有7个:
位运算符的运算法则如下:
public static void main(String[] args) { System.out.println(5 & 9); System.out.println( 5 | 9); System.out.println(~-5); System.out.println(5 ^ 9); }
运行输出结果为:
我们先来看看那5 & 9 和5 | 9的运算:
5的二进制码: 0101 0101 9的二进制码: &1001 |1001 结果: 0001 1101
程序执行~-5的结果是 4
-5的源码:100000000000000000000000000000101 除符号位按位取反 -5的反码:111111111111111111111111111111010 反码加1得到补码 -5的补码:111111111111111111111111111111011 取反后最高位符号为0 -5的补码:000000000000000000000000000000100
记住:原码(出符号位)取反得到得到反码,反码加一得到得到补码
5 ^ 9的值是12,运算过程如下:
(省略24个0) 5的二进制:00000101 9的二进制:00001001 异或 :00001100
左移运算是将运算数的二进制码整体左移指定的位数,左移后右边空出来的位以0填充(负数在计算机中是以补码的形式存在,左移运算时也是运算补码)
public static void main(String[] args) { System.out.println(5 << 2); System.out.println(-5 << 2); }
打印结果是20 -20
右移运算:
java中的右移运算有两个:>>,>>>,对于>>而言,把第一个操作数的二进制向右移动指定的位数,左边的位置以原来的符号位填充,
>>>是无符号右移运算,他把第一个操作数的二进制码右移指定的位数后,左边空出来的数用0填充,
<<,>>,>>>这三个运算符只合适于对byte、short、long、int、char等帧数运算,进行位运算需要遵循如下规则:
标签:需要 二进制 nbsp strong print http com long 一个
原文地址:http://www.cnblogs.com/cumtlg/p/7687007.html