Java中的位运算
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();
- Java中的位运算
- JAVA位运算
- Java I/O : Bit Operation 位运算
- java位运算
- Java 位运算系列之通过位运算操作状态
- 关于java代码中的位运算的使用
- Java位运算
- Java源码分析:Integer中的位运算
- 【java初学】多米诺光控灯(位运算)
- 用Java位运算实现加减乘除四则运算
- java中的位运算
- Java 位运算 64位long数据 转成2个 32位 int数据 及 回加成原数据
- Java中的位运算
- Java的位运算
- Java 位运算
- Java位运算小节
- Android(Java):c枚举,位运算
- java 中的位运算
- Java 位运算
- java 位运算