本文主要是介绍Java的4个位运算和3个移位运算,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
位运算:& 、|、^、~
1.&(按位与) :两位都为1,结果为1,否则为0;
例:2&3 ==> 转换为二进制 (计算机在运算的时候,都是以补码的方式运算的)
2: 0000 0010
3: 0000 0011
————————
0000 0010 == >转换为十进制 == > 2
2.|(按位或):两位只要有一位为1,结果为1,否则为0;
例:2|3 ==>转换为二进制
2: 0000 0010
3: 0000 0011
————————
0000 0011 == >转换为十进制 == > 3
3.^(按位异或):两位一位为0,一位为1,结果为1,否则为0;
例:2^3 == >转换为二进制
2: 0000 0010
3: 0000 0011
————————
0000 0001 == >转换为十进制 == >1
4.~(按位取反):0变1,1变0;
例:~2 == >转换为二进制
2: 0000 0010
——————————
1111 1101 (补码) 负数补码=反码(原码符号位不变,其他位取反)+1;
1111 1100 (反码) == > 1000 0011 (原码) == >转换为十进制 == >-3
移位运算:>>、<<、>>> (注意:没有<<<!!)
1.>>算术右移:符号位不变,低位溢出,符号位补溢出的高位;
例:int a = 1>>2;
0000 0001 == > (00)00 0000 == > 0;
2.<<算术左移:符号位不变,底位补0;
例: int a = 1<<2;
0000 0001 == > 0000 01(00) == > 4;
3.>>>逻辑右移:无符号右移,低位溢出,高位补0;
例:int a = 3>>>2;
0000 0011 == > (00)00 0000 == > 0;
这篇关于Java的4个位运算和3个移位运算的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!