用c语言实现,两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同?
程序员文章站
2023-03-22 08:42:29
方法一:
#include
int bit_dif(int a, int b)
{
int i=0;
int re...
方法一: #include <stdio.h> int bit_dif(int a, int b) { int i=0; int ret=0; int num=0; ret=a^b; for(i=0; i<32; i++) { if(ret&1==1) { num++; } ret=ret>>1; } return num; } int main() { int count=0; int num1=0; int num2=0; printf("请输入两个数,用空格隔开\n"); scanf("%d%d",&num1, &num2); count=bit_dif(num1, num2); printf("%d\n",count); return 0; } 方法二:(优化) #include <stdio.h> int bit_dif(int a, int b) { int i=0; int ret=0; int num=0; ret=a^b; while(ret) { num++; ret=ret&(ret-1); } return num; } int main() { int count=0; int num1=0; int num2=0; printf("请输入两个数,用空格隔开\n"); scanf("%d%d",&num1, &num2); count=bit_dif(num1, num2); printf("%d\n",count); return 0; }
上一篇: 成为C++高手之回调函数
下一篇: 想要在VR中获得成功?这几点或许很有用