力扣面试题 27 - 整数转换

题目:

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

示例1:

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

示例2:

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

提示:

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

思路:

  1. 可以用异或找出有多少个不同的位。(相同为0,不同为1)
  2. 再统计1的个数,即得出有多少个不同的位

C代码如下:

cpp 复制代码
int convertInteger(int A, int B) {
    int num = A ^ B;  // 计算A和B的异或结果
    int cnt = 0;
    for (int i = 0; i < 32; i++) {
        if (num & 1) {  // 如果当前最低位是1,说明该位不同
            cnt++;
        }
        num = num >> 1;  // 右移一位
    }
    return cnt;  // 返回不同的位数
}

此题比较简单,没啥好说的~

相关推荐
FunnySaltyFish16 分钟前
什么?Compose 把 GapBuffer 换成了 LinkBuffer?
算法·kotlin·android jetpack
颜酱1 小时前
理解二叉树最近公共祖先(LCA):从基础到变种解析
javascript·后端·算法
地平线开发者17 小时前
SparseDrive 模型导出与性能优化实战
算法·自动驾驶
董董灿是个攻城狮17 小时前
大模型连载2:初步认识 tokenizer 的过程
算法
地平线开发者18 小时前
地平线 VP 接口工程实践(一):hbVPRoiResize 接口功能、使用约束与典型问题总结
算法·自动驾驶
罗西的思考18 小时前
AI Agent框架探秘:拆解 OpenHands(10)--- Runtime
人工智能·算法·机器学习
HXhlx21 小时前
CART决策树基本原理
算法·机器学习
Wect1 天前
LeetCode 210. 课程表 II 题解:Kahn算法+DFS 双解法精讲
前端·算法·typescript
颜酱1 天前
单调队列:滑动窗口极值问题的最优解(通用模板版)
javascript·后端·算法
Gorway1 天前
解析残差网络 (ResNet)
算法