作业标题
求两个数二进制中不同位的个数
作业内容
编程实现:两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同?
输入例子:
1999 2299
输出例子:7
牛客网的OJ链接(超链接)
因为代码太少了,所以直接放代码:
#includeint main() { //定义两个比较数 int a,b; //两个比较数赋值 scanf("%d%d", &a, &b); //定义计数数-计不一样的位数 int count = 0; //定义循环数(左移数) int i = 0; //超出时直接退出,以免做无意义的运算。 while (!((1 << i) > a && (1 << i) > b)) { //取出每一位对比 if ((a & (1 << i)) != (b & (1 << i))) //不一样时,计数数++ count++; //往左移一位 i++; } //打印出不一样的位数 printf("%dn", count); return 0; }
求关注,求点赞



