求程序给定两个十进制正整数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
JAVA表示A与B转化为二进制位数不同
答案:2 悬赏:0 手机版
解决时间 2021-12-30 07:07
- 提问者网友:蔚蓝的太阳
- 2021-12-29 09:32
最佳答案
- 五星知识达人网友:时间的尘埃
- 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();
}
}
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呗。 具体得自己写
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯