位运算符概述
位运算在java面试的时候也是非常常常问到的,它包括&位与运算,|位或运算,^位导或运算 ~按位取反运算符,下面我们举个例子
举例:
int a = 3;
int b = 4;
定义两个变量a和b,要做位运算,首先我们要把数据转换成二进制
我们对照8421码,可以得出
又因为int类型为4个字节,所以为
00000000 00000000 00000000 00000011
00000000 00000000 00000000 00000100
&位与运算,有0则0 (a&b)
00000000 00000000 00000000 00000000
结果为0(对照8421码)
|位或运算,有1则1,(a|b)
00000000 00000000 00000000 000000111
结果为7
^位导或运算,相同为0,不同为1 ,(a^b)
00000000 00000000 00000000 000000111
结果为7
~按位取反运算符:0变1 1变0 (a~)
我们先拿到a的2进制
00000000 00000000 00000000 00000011
0变1,1变0
11111111 11111111 11111111 11111100
现在是补码,求原码,我们现在要先求反码
反码为(补码减1)
11111111 11111111 11111111 11111011
原码为(1变0,0变1)
00000000 00000000 00000000 00000100
对照8421码得
结果为-4
本文作者:
黄广志
本文链接: https://github.com/ggzhi/ggzhi.github.io/2019/11/21/javaSe%E5%9F%BA%E7%A1%80%E4%B9%8B%E4%BD%8D%E8%BF%90%E7%AE%97/
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!
本文链接: https://github.com/ggzhi/ggzhi.github.io/2019/11/21/javaSe%E5%9F%BA%E7%A1%80%E4%B9%8B%E4%BD%8D%E8%BF%90%E7%AE%97/
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!
![知识共享许可协议](https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png)