如何不使用^操作实现异或运算
程序员文章站
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
上一篇: java递归生成树形结构数据
下一篇: 关于java8 中的steam一些东西