您的位置:首页 > 编程语言 > Java开发

Java中的位运算

2019-04-12 22:00 33 查看

1.Java位运算是对整数类型进行的操作:

   short、int、long 、char、byte

2.Java使用补码来表示负数。

3.位逻辑运算符:

1)与(AND,&):全1为1,有0则0。

特殊用法:清零(与0进行与运算)、取一个数中的指定位(与1进行与运算)

2)或(OR,|):有1则1,全0为0。

特殊用法:使特定数位为1

3)异或(XOR,^):不同为1,相同为0。

特殊用法:使特定数位翻转(与1异或)、保留原值(与0异或)、交换两个变量的值。

 交换两个变量的值:

         借助第三个变量来实现。C=A;A=B;B=C;

         利用加减法实现两个变量的交换。A=A+B;B=A-B;A=A-B;

         用位异或运算来实现,效率最高。A=A^B;B=A^B;A=A^B;(一个数异或本身等于0)

4)非(NOT,~):取反。

4.左移运算:value<<num

1)数值value向左移动num位,左边二进制位丢弃,右边补0。(注意byte和short类型移位运算时会变成int型,结果要强制转换)

2)若1被移位到最左侧,则变成负数。

3)左移时舍弃位不包含1,则左移一次,相当于乘2。

5.右移运算:value>>num

1)数值value向右移动num位,正数左补0,负数左补1,右边舍弃。(即保留符号位)

2)右移一次,相当于除以2,并舍弃余数。

3)无符号右移>>>:左边位用0补充,右边丢弃。

6.负数以其正值的补码形式表示

原码:一个整数按照绝对值大小转换成的二进制数称为原码。

反码:将二进制按位取反,所得的新二进制数称为原二进制数的反码。

补码:反码加1称为补码。

7.运算顺序

先& 后^ 后|

int n=7; n<<=3; n=n&n+1|n+2^n+3; n>>=2;System.out.println(n);//n=14

8.进制的转换

十进制转换成其他进制

      Integer.toHexString(int i);//十六进制

      Integer.toOctalString(int i);//八进制

      Integer.toBinaryString(int i);//二进制

其他进制转化为十进制

      Integer.valueOf("fff0",16).toString();

      Integer.valueOf("123",8).toString();

      Integer.valueOf("0101",2).toString();

 

 

 

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: