java 逻辑异或_逻辑与,逻辑或,逻辑异或;按位与,按位或,按位异或

符号表达:

逻辑与  逻辑或  逻辑异或

按位与  按位或  按位异或

&     |   ^

说明:很多人不容易理解这些符号的说明,就很迷糊,这里我用简单的语言进行说明,看完相信你会有所收获!

逻辑:带有这两个字的通常就是两个boolean表达式的运算。比如:(3>5) & (1<2)

按位:带有这两个字的通常是十进制数或者二进制数的运算。比如:3 | 5

解释说明:

这是我自己总结的,相信在日常的编码中你能够更深的理解这些代码的意思。

逻辑与:两边的表达式有一项为假,结果就为假。两边的表达式全为真,结果才为真。

逻辑或: 两边的表达式有一项为真,结果就为真。两边的表达式全为假,结果才为假。

逻辑异或:真假为真,真真为假,假假为假。

==============================================

按位与:两个二进制对应位都为1时,结果为1,否则结果为都0

按位或:两个二进制对应位都为0时,结果为0,否则结果为都1

按位异或:两个二进制对应位相同时,结果为0,否则结果为1

代码演示:

一个数转二进制的方法,这里就不再进行阐述。可以自行查阅文档进行学习。

我们先看逻辑操作这边的代码:

int a = 5;//0000 0101

int b = 3;//0000 0011

System.out.println("逻辑与:" + ((a > b) & (b > 3)));

System.out.println("逻辑或:" + ((b > 3) | (a > b)));

System.out.println("逻辑异或:" + ((a > 3) ^ (b > 5)));

System.out.println("逻辑异或:" + ((a > 3) ^ (b < 5)));

System.out.println("逻辑异或:" + ((a < 3) ^ (b > 5)));

-----------------------------------------------------------------------

结果为:

逻辑与:false

逻辑或:true

逻辑异或:true

逻辑异或:false

逻辑异或:false

按位这边的代码:

int a = 5;//0000 0101

int b = 3;//0000 0011

System.out.println("按位与:" + (3 & 5));//0000 0001

System.out.println("按位或:" + (3 | 5));//0000 0111

System.out.println("按位异或:" + (3 ^ 5));//0000 110

=========================================

结果为:自行验算上边的二进制转为十进制的数

按位与:1

按位或:7

按位异或:6

拓展1:&= , |= , ^=

在有些地方我们有可能会见到这样的符号:&= , |= , ^=

这样的符号其实就是一个赋值类的操作。

我们来举个例子:

int a = 5;//0000 0101

int b = 3;//0000 0011

a ^= b;

System.out.println(a);//a = a^b

其实这个跟我们学过的+=是一个意思。

扩展2:java中用方法进行进制转换

//十进制转成十六进制:

System.out.println(Integer.toHexString(10));

//十进制转成八进制

System.out.println(Integer.toOctalString(10));

//十进制转成二进制

System.out.println(Integer.toBinaryString(10));

//十六进制转成十进制

System.out.println(Integer.valueOf("FFFF", 16).toString());

//八进制转成十进制

System.out.println(Integer.valueOf("010", 8).toString());

//二进制转十进制

System.out.println(Integer.valueOf("0101", 2).toString());

//将2、8、16进制直接转为10进制

System.out.println(Integer.parseInt("1010",2));

System.out.println(Integer.parseInt("012",8));

System.out.println(Integer.parseInt("FFFF",16));

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值