面试题 05.06:整数转换

简介: 面试题 05.06:整数转换

题目

题目链接

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

示例1:

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

示例2:

输入:A = 1,B = 2
 输出:2

解题

方法一:位运算1

比较两个数的 对应的位是否相同。

class Solution {
public:
    int convertInteger(int A, int B) {
        int res=0;
        for(int i=0;i<32;i++){
            if((A&(1<<i))!=(B&(1<<i))){
                res++;
            }
        }
        return res;
    }
};

方法二:位运算2

使用异或,然后统计异或为1的位。

注意-1的右移是-1。因此不能使用while(A!=0)作为条件,要用for循环32次。

class Solution {
public:
    int convertInteger(int A, int B) {
        int res=0;
        A^=B;
        for(int i=0;i<32;i++){
            res+=(A&1);
            A>>=1;
        }
        return res;
    }
};
相关文章
|
4月前
|
搜索推荐 索引 Python
【面试题】缺失的第一个整数
【面试题】缺失的第一个整数
43 0
|
7月前
|
Python
2024年最新【Python】常见的 数据类型:整数类型,Python面试题整理最新
2024年最新【Python】常见的 数据类型:整数类型,Python面试题整理最新
2024年最新【Python】常见的 数据类型:整数类型,Python面试题整理最新
|
7月前
|
算法
【一刷《剑指Offer》】面试题 11:数值的整数次方
【一刷《剑指Offer》】面试题 11:数值的整数次方
|
7月前
|
算法 Java
【力扣经典面试题】12. 整数转罗马数字
【力扣经典面试题】12. 整数转罗马数字
|
7月前
|
人工智能 算法 Java
数据结构与算法面试题:给定 n 个非负整数 a1,a2,a3,...,an,每个数代表坐标中的一个点(i, ai),请找出两个点之间的最大距离。(提示:动态规划)
数据结构与算法面试题:给定 n 个非负整数 a1,a2,a3,...,an,每个数代表坐标中的一个点(i, ai),请找出两个点之间的最大距离。(提示:动态规划)
95 1
|
7月前
|
存储 算法 Java
数据结构和算法面试题:给定一个整数数组 nums,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。
数据结构和算法面试题:给定一个整数数组 nums,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。
96 0
|
7月前
|
机器学习/深度学习 存储 算法
数据结构与算法面试题:给定非负整数 m 和 n,计算不大于 m 的数字中,素数的个数。(提示:算法原理为埃氏筛、线性筛)
数据结构与算法面试题:给定非负整数 m 和 n,计算不大于 m 的数字中,素数的个数。(提示:算法原理为埃氏筛、线性筛)
103 0
|
存储 Java
LeetCode150道面试经典题--罗马数字转整数(简单)
罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。其按规律组合成一个罗马数字后将其转换成整数并输出。
74 0
|
存储 算法 Java
【算法】阿里面试题-编码实现20亿个整数,找出某个数X是否存在其中
【算法】阿里面试题-编码实现20亿个整数,找出某个数X是否存在其中
【算法】阿里面试题-编码实现20亿个整数,找出某个数X是否存在其中
|
算法
剑指Offer - 面试题16:数值的整数次方
剑指Offer - 面试题16:数值的整数次方
62 0

热门文章

最新文章