两个int(32位)整数m和n的二进制表达式中,求有多少不同位数
#include<stdio.h> #include<stdlib.h> int number_of_one(int num)//计算一个二进制数中1的个数 { int i = 0; int key = 0; for (i = 0; i < 32; i++) { key += num & 0x00000001; num >>= 1; } return key; } int main() { int m = 0; int n = 0; int apple = 0; int ret; printf("请输入两个比较的数:\n"); scanf("%d %d", &m, &n); apple = m^n; ret=number_of_one(apple); printf("共有%d个1\n", ret); system("pause"); return 0; }
计算一个二进制中数的个数函数
int number_of_one(int num) { int i = 0; int n = 0; for (i = 0; i < 32; i++) { n += num & 0x00000001; num >>= 1; } return n; }
本文出自 “无以伦比的暖阳” 博客,请务必保留此出处http://10797127.blog.51cto.com/10787127/1711251
原文:http://10797127.blog.51cto.com/10787127/1711251