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

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

相关推荐
柳鲲鹏28 分钟前
RGB转换为NV12,查表式算法
linux·c语言·算法
橘颂TA28 分钟前
【剑斩OFFER】算法的暴力美学——串联所有单词的字串
数据结构·算法·c/c++
Kuo-Teng29 分钟前
LeetCode 73: Set Matrix Zeroes
java·算法·leetcode·职场和发展
mit6.82431 分钟前
[HDiffPatch] 补丁算法 | `patch_decompress_with_cache` | `getStreamClip` | RLE游程编码
c++·算法
程序猿202332 分钟前
Python每日一练---第六天:罗马数字转整数
开发语言·python·算法
葵续浅笑1 小时前
LeetCode - 杨辉三角 / 二叉树的最大深度
java·数据结构·算法·leetcode
qq_479875431 小时前
RVO和移动语义
前端·算法
菜小麒1 小时前
推荐算法的八股文
算法·机器学习·推荐算法
Miraitowa_cheems2 小时前
LeetCode算法日记 - Day 94: 最长的斐波那契子序列的长度
java·数据结构·算法·leetcode·深度优先·动态规划
ada7_2 小时前
LeetCode(python)——49.字母异位词分组
java·python·leetcode