【LeetCode】整数转换 —— 将整数A转换成整数B所需改变的位数
题目描述
给定两个整数 A 和 B,编写一个函数,确定需要改变几个二进制位,才能将整数 A 转换成整数 B。
- 示例 1:
输入:A = 29(0b11101),B = 15(0b01111)
输出:2
- 示例 2:
输入:A = 1,B = 2
输出:2
- 提示:
-
- A 和 B 的取值范围在 [-2³¹, 2³¹ - 1] 之间。
解题分析
本题核心是找出两个整数的二进制表示中,不同位的数量。
- 如果两位相同,不需要改变。
- 如果两位不同,需要一次修改。
所以问题就转化为:统计两个整数的二进制表示中不同位的数量。
关键点:
- 二进制中的不同位,可以通过异或(XOR)运算

最低0.47元/天 解锁文章
281

被折叠的 条评论
为什么被折叠?



