【漫步刷题路】- 找到两个二进制序列不同位有几位

简介: 找到两个二进制序列不同位有几位

题目要求

找到两个二进制序列不同位有几位:

方法1:遍历两个二进制序列,每一位比较是否相等

int count_difer_bit(int n1, int n2)
{
    int  count = 0;
    int i = 0;
    //4个字节:32位,所以比较次数:32次
    for (i = 0; i < 32; i++)
    {
        //两个数的二进制序列对应比特位与上1之后进行比较
        if ( ( (n1 >> i) & 1 ) != ((n2 >> i) & 1) )
        {
            count++;
        }
    }
    return count;
}
int main()
{
    int n = 0;
    int m = 0;
    scanf("%d %d", &n, &m);
    int ret = count_difer_bit(n,m);
    printf("%d %d二进制序列中有%d位不同\n", n, m, ret);
    return 0;
}

方法2:使用异或

异或:相同为0,相异为1

把要求的两个二进制序列异或起来,看异或后的结果有几个1,则原来的两个数就有几个二进制序列不同

//得到二进制序列有多少个1
int Numberf1(int n)
{
    int count = 0;
    while (n)
    {
        n = n & (n - 1);
        count++;
    }
    return count;
}
//两个二进制比较
int count_diff_bit(int n1, int n2)
{
    int count = 0;
    int t = n1 ^ n2;  //n1 n2异或
    count = Numberf1(t);
    return count;
}
int main()
{
    int n = 0;
    int m = 0;
    scanf("%d %d", &n, &m);
    int ret = count_diff_bit(n,m);
    printf("%d %d二进制序列中有%d位不同\n", n, m, ret);
    return 0;
}
相关文章
|
4月前
【一刷《剑指Offer》】面试题 10:二进制中 1 的个数
【一刷《剑指Offer》】面试题 10:二进制中 1 的个数
|
10月前
|
算法 索引
代码随想录算法训练营第二天 |977.有序数组平方,209.长度最小的字数组,59.螺旋矩阵
代码随想录算法训练营第二天 |977.有序数组平方,209.长度最小的字数组,59.螺旋矩阵
|
11月前
|
算法
【算法挨揍日记】day03——双指针算法_有效三角形的个数、和为s的两个数字
【算法挨揍日记】day03——双指针算法_有效三角形的个数、和为s的两个数字
44 0
|
算法 安全
代码随想录算法训练营第六天| 242.有效的字母异位词 349. 两个数组的交集 202. 快乐数 1. 两数之和
代码随想录算法训练营第六天| 242.有效的字母异位词 349. 两个数组的交集 202. 快乐数 1. 两数之和
|
算法 C语言
【基础算法】浅浅刷个小题 # 移动零 # 丢失的数字 # 转换成小写字母 # 和为零的N个不同整数 # 猜数字 #
【基础算法】浅浅刷个小题 # 移动零 # 丢失的数字 # 转换成小写字母 # 和为零的N个不同整数 # 猜数字 #
|
机器学习/深度学习 算法 JavaScript
代码随想录训练营day31| 455.分发饼干 376. 摆动序列 53. 最大子序和
代码随想录训练营day31| 455.分发饼干 376. 摆动序列 53. 最大子序和
|
算法
leetcode算法 每日一题(17.04消失的数字)day 1
今天开始小编开始给大家带来算法题目的讲解,首先我们看题目描述
117 0
|
算法 Java
【算法】给你一个数字算出螺旋矩阵,要不要来试一试?
给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的
81 2
【算法】给你一个数字算出螺旋矩阵,要不要来试一试?
力扣刷题记录——682. 棒球比赛、628. 三个数的最大乘积、693. 交替位二进制数
力扣刷题记录——682. 棒球比赛、628. 三个数的最大乘积、693. 交替位二进制数
133 0
力扣刷题记录——682. 棒球比赛、628. 三个数的最大乘积、693. 交替位二进制数
|
机器学习/深度学习 算法 安全
【Python 百练成钢】时间调整、二进制数、回文素数、字母距离、CTF、Huffuman树、抽奖、前后缀最值、纯质数求解、花园灌溉
【Python 百练成钢】时间调整、二进制数、回文素数、字母距离、CTF、Huffuman树、抽奖、前后缀最值、纯质数求解、花园灌溉
214 0
【Python 百练成钢】时间调整、二进制数、回文素数、字母距离、CTF、Huffuman树、抽奖、前后缀最值、纯质数求解、花园灌溉