位运算的几种便捷操作,可以提高编写效率

*** java位运算的几种便捷操作,可以提高编写效率***

1,思考:2变成8的最快方法

	大家都知道2*2*2=8,但是今天我们要利用为运算的相关机制,给大家介绍一种更加快速的方法。
	2的二进制数:           8的二进制数:
	0010                   1000
	我们可以直接将2的二进制数直接左移2位即可得到8
System.out.println(2<<2);

在这里插入图片描述

2,快速判断一个奇偶数

	判断一个数是奇数还是偶数比较常见的方法是用这个数对2取余,如果是奇数则余1,如果是偶书则余0;
	这里我们以数字8和数字9举例:
	8的二进制数:          9的二进制数:
	1000                  1001
	0001                  0001     (与1进行&运算)
	二进制机制中我们可以发现这样一个规律,除了最后一位代表1,其余位置(2,4,6,8……)都是2的倍数。
	所以我们只需要将这个数字和1进行&(与)运算。偶数就会得到0,奇数就会得到1
System.out.println("9&1"+" = "+(9&1));
System.out.println("8&1"+" = "+(8&1));
System.out.println("0&1"+" = "+(0&1));

在这里插入图片描述

3,快速交换2个数字的值

有一杯可乐,一杯牛奶,现在需要将装可乐的杯子装牛奶,装牛奶的杯子装可乐。我们就需要第三个杯子。
要交换2个变量的值,同理,我们需要定义另外一个变量。
今天我们利用^(异或)运算,不定义中间变量直接完成交换。

package zxcv;
public class 另一个乱七八糟的测试 {
public static void main(String[] args) {
int a=5;
int b=99;
a=a^b;
b=a^b;
a=a^b;
System.out.println("a"+"="+a);
System.out.println("b"+"="+b);
}
}

在这里插入图片描述

原理:

其实很简单,只需要记住^(异或)的规则:
任何数与自己异或为0,与0异或为自己。
a=a^b;
b=a^b; (把a=a ^ b 带入b=a ^b ^b , b=a ^b ^b ,b=a ^0,b=a)
a=a^b; (把a=a ^ b 带入a=a ^b ^b ,a=a ^b ^a ,a=b ^0,a=b)

怎么样?是不是很方便?如果大家有更好的方法欢迎评论区分享,我会在第一时间回复
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值