java-位运算符-交换两个变量的值的三种方法

本文讲解了位运算符在整数操作中的应用,包括<<位左移和>>位右移,以及如何利用位运算实现2*8的高效计算和两个变量的快速交换。通过实例演示,介绍了&按位与、|按位或和^按位异或的使用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/*
运算符之五:位运算符:
结论:
1.位运算符作用的都是整形的数据
2.<<:在一定范围内,单位向左移一位,相当于*2(基于二进制的位数来平移)

: 在一定范围内,单位向右移一位,相当于/2(右移会先判断是正数还是负数,正数用0补,负数用1补)

面试题:最高效的方式计算2*8 ? 2<<3或者8<<1
*/

class BitTest{
	public static void main(String[] args){
		int i = 21;
		//i = -21;

		System.out.println("i << 2 :" + (i << 2));
		System.out.println("i << 3 :" + (i << 3));
		System.out.println("i << 27 :" + (i << 27));

		int m = 12;
		int n = 5;
		System.out.println("m & n = " + (m & n));
		System.out.println("m | n = " + (m | n));
		System.out.println("m ^ n = " + (m ^ n));
		//通过二进制底层的位运算来运算

		//练习:交换两个变量的值
		int num1 = 10;
		int num2 = 20;

		System.out.println("num1 = " + num1 + ",num2 = " + num2);

		//方法一:
		//int temp;
		//temp = num1;
		//num1 = num2;
		//num2 = temp;

		//方法二:
		//num1 = num1 + num2;
		//num2 = num1 - num2;
		//num1 = num1 - num2;

		//法三:异或,使用位运算符
		num1 = num1 ^ num2;
		num2 = num1 ^ num2;
		num1 = num1 ^ num2;

		System.out.println("num1 = " + num1 + ",num2 = " + num2);


	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值