题目: 将整数A转换为B 如果要将整数A转换为B,需要改变多少个bit位? 样例 如把31转换为14,需要改变2个bit位. ()10=()2 ()10=()2 挑战 你能想出几种方法? 解题: A-->B二进制要变化多少位?就是考虑A.B对应的二进制数有多少不同的,A.B的异或结果中出现的1的个数就是需要改变的比特位 问题转换成,10进制的数中,二进制表示情况下1的个数,这个题目之前求过,编程之美上面也有的. 上面的方法1不可取,因为这里的数据有负数. 其他两种方法如下: Java程序: 利用…