欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

如何不使用^操作实现异或运算

程序员文章站 2022-04-15 18:50:45
题目描述:  不使用^操作实现异或运算。分析:  遍历两个整数的所有的位,如果两个数的某一位相等,那么结果中这一位的值就为0,否则结果中这一位的值就为1.实现代码:package lock;public class T21 {public final int BITS=32; //以64位平台为例/*获取x与y的异或的结果*/public int xor(int x,int y){int res=0;int xoredBit;int i;for(i=B...

题目描述:

  不使用^操作实现异或运算。

分析:

  遍历两个整数的所有的位,如果两个数的某一位相等,那么结果中这一位的值就为0,否则结果中这一位的值就为1.

实现代码:

package lock;

public class T21 {
	public final int BITS=64;  //以64位平台为例
	/*获取x与y的异或的结果*/
	public int xor(int x,int y)
	{
		int res=0;
		int xoredBit;
		int i;
		for(i=BITS-1;i>=0;i--)
		{
			/*获取x与y当前的bit值*/
			boolean b1=(x&(1<<i))>0;
			boolean b2=(y&(1<<i))>0;
			/*只有这两位都是1或者0的时候结果位0*/
			if(b1==b2)
				xoredBit=0;
			else
				xoredBit=1;
			res<<=1;
			res|=xoredBit;
		}
		return res;
	
	}

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int x=5,y=9;
		T21 mx=new T21();
		System.out.println(mx.xor(x, y));

	}

}

运行结果:

如何不使用^操作实现异或运算

本文地址:https://blog.csdn.net/qq_45828598/article/details/109257830