LeetCode面试题05.06

美好的一天,从力扣开始

王子公主请看题

整数转换。编写一个函数,确定需要改变几个位才能将整数A转成整数B。

示例1:

复制代码
 输入:A = 29 (或者0b11101), B = 15(或者0b01111)
 输出:2

示例2:

复制代码
 输入:A = 1,B = 2
 输出:2

提示:

  1. A,B范围在[-2147483648, 2147483647]之间

根据提示不难发现a,b都是int类型,我们知道int对应32个比特位,要将a转化为b,其实就是把a的二进制改为b的二进制,那我们只需要找到两个数字有多少个比特上的数字不同就行了。这里就用到了^,他是相同则为0,不同则为1,我们把a,b32个比特位挨个通过^比较一番即可

代码如下

int convertInteger(int A, int B)

{

int a = 0;

for (int i = 0; i < 32; i++)

{

if (((A >> i) & 1)^((B >> i) & 1))

a++;

}

return a;

}

AC

相关推荐
埃菲尔铁塔_CV算法2 小时前
双线性插值算法:原理、实现、优化及在图像处理和多领域中的广泛应用与发展趋势(二)
c++·人工智能·算法·机器学习·计算机视觉
叫我龙翔2 小时前
【算法日记】从零开始认识动态规划(一)
c++·算法·动态规划·代理模式
AC100AC2 小时前
[NOIP2007 提高组] 矩阵取数游戏
算法·游戏·矩阵
深度混淆2 小时前
C#,图论与图算法,输出无向图“欧拉路径”的弗勒里(Fleury Algorithm)算法和源程序
算法·图论
大草原的小灰灰2 小时前
C++ STL之容器介绍(vector、list、set、map)
数据结构·c++·算法
小刘|3 小时前
数据结构的插入与删除
java·数据结构·算法
廖显东-ShirDon 讲编程3 小时前
《零基础Go语言算法实战》【题目 2-22】Go 调度器优先调度问题
算法·程序员·go语言·web编程·go web
Lulsj4 小时前
代码随想录day24 | 贪心算法理论基础 leetcode 455.分发饼干 376.摆动序列 53. 最大子序和
算法·leetcode·贪心算法
KuaCpp4 小时前
算法初学者(图的存储)链式前向星
c++·算法
Cosmoshhhyyy4 小时前
LeetCode:2270. 分割数组的方案数(遍历 Java)
java·算法·leetcode