奇妙的位运算

位运算之两个数转换进制改变问题(hihocoder)

2019-01-24  本文已影响0人  掌灬纹

题目:

给定两个整数A和B,

需要改变几个二进制位才能将A转为B。


样例输入

10 8

样例输出

1

思路:

改变几个即是,原两个数之间有几位是不同的,将两个数异或运算,在同计解中1的个数即可。(统计1的个数在前边详细解释过)

(Java代码)

import java.util.Scanner;

public class Main {

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

int a = sc.nextInt();

int b = sc.nextInt();

int c= a^b;

int count = 0;

while(c!=0) {

c = c&(c-1);

count++;

}

System.out.println(count);

}

}

上一篇 下一篇

猜你喜欢

热点阅读