设为首页 加入收藏

TOP

用c语言实现,两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同?
2016-01-29 16:25:50 】 浏览:1495
Tags:语言 实现 两个 int 32位 整数 二进制 表达 多少 个位 bit 不同
方法一:
#include 
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 
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;
}

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇排成一圈数3退出最后一人位置问题.. 下一篇C语言:实现函数init()初始化数..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目