标签:c
1、编程实现:两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同?
#include<stdio.h> #include<string.h> int bits_compare(int num1,int num2) { int a[32]={0}; int b[32]={0}; int i=0; int count=0; for(i=0;i<32;i++)//num1 二进制转化 { a[i]=num1%2; num1=num1/2; } printf("1 二进制: "); for(i = 31;i >= 0;i --)//调整格式并输出结果 { printf("%d",a[i]); if(i%4 == 0) { printf(" "); } } printf("\n"); for(i=0;i<32;i++)//num2 二进制转化 { b[i]=num2%2; num2=num2/2; } printf("2 二进制: "); for(i = 31;i >= 0;i --) { printf("%d",b[i]); if(i%4 == 0) { printf(" "); } } printf("\n"); for(i=0;i<32;i++)//比较 { if(a[i]!=b[i]) { count++; } } printf("count=%d\n",count); } int main() { int m=0,n=0; int count=0; int arr1[32]={0},arr2[32]={0}; printf("请输入两数m、n: "); scanf("%d%d",&m,&n); bits_compare(m,n); return 0; }
本文出自 “花开彼岸” 博客,请务必保留此出处http://zxtong.blog.51cto.com/10697148/1703538
标签:c
原文地址:http://zxtong.blog.51cto.com/10697148/1703538