MT42. bit位数
描述
输入描述
一行中给定两个数字输出描述
输出这两个数字中bit不同的个数示例1
输入:
15 8
输出:
3
说明:
15的二进制表示中后四位是 1111 , 3的二进制表示中后四位是 0011,因此有两位不同C 解法, 执行用时: 1ms, 内存消耗: 368KB, 提交时间: 2020-07-30
#include<stdio.h> int main() { int n,m; scanf("%d%d",&n,&m); n=n^m; m=0; while(n>0) { if(n&1) { m=m+1; } n=n>>1; } printf("%d\n",m); }
C 解法, 执行用时: 1ms, 内存消耗: 376KB, 提交时间: 2020-08-09
#include<stdio.h> int main(){ int a,b,cnt=0; scanf("%d %d",&a,&b); while(a!=0&&b!=0){ if((a&1)!=(b&1)) cnt++; a=a>>1; b=b>>1; } while(a!=0&&b==0){ if(a&0==0) cnt++; a=a>>1; } while(b!=0&&a==0){ if(b&0==0) cnt++; b=b>>1; } printf("%d",cnt); }