力扣面试题 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;  // 返回不同的位数
}

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

相关推荐
凯强同学3 分钟前
第十四届蓝桥杯大赛软件赛省赛Python 研究生组:4.互质数的个数
python·职场和发展·蓝桥杯
肠胃炎9 分钟前
真题246—矩阵计数
java·线性代数·算法·矩阵·深度优先
什码情况10 分钟前
微服务集成测试 -华为OD机试真题(A卷、JavaScript)
javascript·数据结构·算法·华为od·机试
罗西的思考2 小时前
[2W字长文] 探秘Transformer系列之(23)--- 长度外推
人工智能·算法
算AI21 小时前
人工智能+牙科:临床应用中的几个问题
人工智能·算法
hyshhhh1 天前
【算法岗面试题】深度学习中如何防止过拟合?
网络·人工智能·深度学习·神经网络·算法·计算机视觉
杉之1 天前
选择排序笔记
java·算法·排序算法
Naive_71 天前
蓝桥杯准备(前缀和差分)
java·职场和发展·蓝桥杯
烂蜻蜓1 天前
C 语言中的递归:概念、应用与实例解析
c语言·数据结构·算法
OYangxf1 天前
图论----拓扑排序
算法·图论