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

相关推荐
chuan.bai5 分钟前
Java RAG 实战附录:qwen3 与 bge-m3 模型切换指南
java·人工智能·算法
wuyk5556 分钟前
7.AVL 树:第一个自平衡二叉搜索树
开发语言·stm32·单片机·算法
程序猿炎义6 分钟前
【llm-algo-leetcode学习笔记】显存与性能认知底座
笔记·学习·leetcode
rannn_11110 分钟前
【力扣hot100】二叉树专题+总结
java·算法·leetcode·二叉树
啊嘞嘞?12 分钟前
力扣(岛屿数量)
算法·leetcode
zander25831 分钟前
LeetCode 198. 打家劫舍
算法·leetcode·深度优先
吃着火锅x唱着歌38 分钟前
LeetCode 648.单词替换
算法·leetcode·职场和发展
一只积极向上的小咸鱼1 小时前
分词器tokenizer
算法·llm
Elsa️7461 小时前
leetcode 14.最长公共前缀
算法·leetcode·职场和发展
不会代码的小猴1 小时前
6. Qt网络编程
开发语言·c++·笔记·qt·算法