永发信息网

JAVA表示A与B转化为二进制位数不同

答案:2  悬赏:0  手机版
解决时间 2021-12-30 07:07
  • 提问者网友:蔚蓝的太阳
  • 2021-12-29 09:32
求程序给定两个十进制正整数A和B,请计算出A和B用二进制表示时有多少位是不同的。例如,“3”的二进制表示为“11”,“9”的二进制表示为“1001”,“11”不足4位,不足部分实际上为0,即“0011”,因此二者从右至左第2、4位不同,所以3和9用二进制表示时有两位不同。输入输入包括两行,第1行是一个整数n,表示有n组测试数据。紧接着n行,每行包括两个十进制正整数A和B,A、B之间用空格隔开。输出输出有n行,为每组测试数据中A和B用二进制表示时不相同的位数。样例输入1
3 9样例输出2
最佳答案
  • 五星知识达人网友:时间的尘埃
  • 2022-01-10 05:02
import java.util.Scanner;

public class Main{

public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
for(int i = 0; i < n; i++) {
int A = sc.nextInt(), B = sc.nextInt(),
t = A ^ B, count = 0;
while(t > 0) {
if((t & 1) == 1) 
count++;
t >>= 1;
}
System.out.println(count);
}
sc.close();
}
}
全部回答
  • 1楼网友:廢物販賣機
  • 2022-01-10 05:55
按位亦或,然后看有多少个1呗。 具体得自己写
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯