面试题:说说或运算、异或运算

位异或运算:相同则0(0^0,1^1),不同则1(1^0,0^1)

位或运算:如果2个位都是0则是0(0|0),其余情况都是1(0|1,1|0,1|1)

有关异或运算的结论:针对同一个数据异或两次,该数本身不变,比如:a^b^b=a,a^b^a=b

测试的源代码:

package java基础题目;

/*
 * 异或运算?或运算?
 * 位异或运算:相同则0(0^0,1^1),不同则1(1^0,0^1)
 * 位或运算:如果2个位都是0则是0(0|0),其余情况都是1(0|1,1|0,1|1)
 */
public class A2015年6月6日或和异或运算 {
	public static void main(String[] args) {
		method1();
		method2();
		// 测试或运算
		method3();
	}

	// 异或运算方法测试:位异或运算:相同则0,不同则1
	public static void method1() {
		// 00000000 0000000 00000000 00000001
		// 00000000 0000000 00000000 00000001
		System.out.println("1^1=" + (1 ^ 1));// 0 注意里面那个要加括号,考虑运算符优先级问题
		System.out.println("1^2=" + (1 ^ 2));// 3
	}

	// 有关异或运算的结论:针对同一个数据异或两次,该数本身不变,比如:a^b^b=a,a^b^a=b
	// 这个结论可用于异或运算交换2个数字
	public static void method2() {
		System.out.println("1^1^2=" + (1 ^ 1 ^ 2));// 2
		System.out.println("1^2^2=" + (1 ^ 2 ^ 2));// 1

		System.out.println("15^3^2^1^1^2^3=" + (15 ^ 3 ^ 2 ^ 1 ^ 1 ^ 2 ^ 3));// 15
	}

	// 或运算
	public static void method3() {
		System.out.println("1|1=" + (1 | 1));// 位上全是1则是1
		System.out.println("1|2=" + (1 | 2));// 位上有一个是1则是3

		System.out.println("0|0=" + (0 | 0));// 位上全是0则是0
	}

}




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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

绝地反击T

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值