首页 > 试题广场 > bit位数
[编程题]bit位数

两个int32整数m和n的二进制表达,计算有多少个位(bit)不同?


输入描述:
一行中给定两个数字


输出描述:
输出这两个数字中bit不同的个数
示例1

输入

15 8

输出

3

3个回答

添加回答
#include <bits/stdc++.h>

using namespace std;

int main()
{     int a,b;     while(cin>>a>>b)      {         int cnt = 0;         int c = a^b;         while(c)         {             cnt += (c&1);             c>>=1;         }         cout<<cnt<<endl;     }     return 0;
}

发表于 2019-01-19 02:31:01 回复(0)
import java.util.Scanner;

/**
 * @author wylu
 */
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNext()) {
            int xor = scanner.nextInt() ^ scanner.nextInt();
            int count = 0;
            while (xor != 0) {
                xor &= (xor - 1);
                count++;
            }
            System.out.println(count);
        }
    }
}


编辑于 2019-01-11 19:07:47 回复(0)
```
import java.util.Scanner;
 
public class Main
{
    public static int bitCount(int a, int b)
    {
        return Integer.bitCount(a^b);
    }
     
    public static void main(String[] args)
    {
        Scanner scanner = new Scanner(System.in);
        while(scanner.hasNext())
        {
            int a = scanner.nextInt();
            int b = scanner.nextInt();
            System.out.print(bitCount(a,b));
        }
    }
}
```
调用Integer.bitcount()
或者利用 x&(x -1) , 看能进行多少次这样的操作

发表于 2019-01-17 13:45:50 回复(0)

问题信息

上传者: 小小
难度:
3条回答 73浏览

热门推荐

通过挑战的用户

查看代码

扫一扫,把题目装进口袋

牛客网,程序员必备求职神器

扫描二维码,进入QQ群

扫描二维码,关注牛客网公众号

  • 公司地址:北京市朝阳区大屯路东金泉时代3-2708北京牛客科技有限公司
  • 联系方式:010-60728802(电话) admin@nowcoder.com
  • 牛客科技©2018 All rights reserved
  • 京ICP备14055008号-4
  • 京公网安备 11010502036488号