avatar

java中的与或非

java中的位运算符

与运算符 & :两个操作数中位都为1,结果才为1,否则结果为0
或运算符 | : 两个位只要有一个为1,那么结果就是1,否则就为0
非运算符 ~ : 如果位为0,结果是1,如果位为1,结果是0
异或运算符 ^ : 两个操作数的位中,相同则结果为0,不同则结果为1

与运算符 &

public static void main(String[] args) {
int tar = 127;
int tar2 = 126;
System.out.println(Integer.toBinaryString(tar));
System.out.println(Integer.toBinaryString(tar2));
System.out.println((tar & tar2));
}
//输出结果:1111111
// 1111110
// 126

因为是与,只有两个位数都为1才会为1,所以输出结果依然为11111110 = 126

或运算符 |

public static void main(String[] args) {
int tar = 127;
int tar2 = 126;
System.out.println(Integer.toBinaryString(tar));
System.out.println(Integer.toBinaryString(tar2));
System.out.println((tar | tar2));
}
//输出结果:1111111
// 1111110
// 127

两个位只要有一个为1,那么结果就是1,否则就为0,所以这么看来得出的结果应该是都为1,也就是127

非运算符 ~

用于反转,把1变成0,把0变成1.

异或运算符 ^

public static void main(String[] args) {
int tar = 127;
int tar2 = 126;
System.out.println(Integer.toBinaryString(tar));
System.out.println(Integer.toBinaryString(tar2));
System.out.println((tar ^ tar2));
}
//输出结果:1111111
// 1111110
// 1

异或与与的区别就是与只认1,也就是true,两个是真才是真,异或是两个相同就是真。

文章作者: zenshin
文章链接: https://zlh.giserhub.com/2020/03/11/cl35o0mp80016p4tg9s0cdzlk/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 zenshin's blog
打赏
  • 微信
    微信
  • 支付宝
    支付宝

评论