方法一:
/* 功能:数字探秘——统计所输入的字符X的二进制表示中含有多少个1 日期:2013-04-01 */
#include<stdio.h> #include<stdlib.h> #include<math.h>
int main(void) {
char cH1,cH2; printf("请输入一个字符:"); scanf("%c",&cH1);
cH2 = cH1; cH1 = (cH1 & 0x5555) + ((cH1>>1) & 0x5555); cH1 = (cH1 & 0x3333) + ((cH1>>2) & 0x3333); cH1 = (cH1 & 0x0F0F) + ((cH1>>4) & 0x0F0F);
printf("字符'%c'的二进制表示中含有%d个1n",cH2,cH1);
system("pause"); return 0; }
______________________________________________________________________________
方法二:
/* 功能:数字探秘——统计所输入的字符X的二进制表示中含有多少个1 日期:2013-04-01 */ #include<stdio.h> #include<stdlib.h> #include<math.h>
int main(void) {
char ch; int num=0;
num+=ch>>0&1==1; num+=ch>>1&1==1; num+=ch>>2&1==1; num+=ch>>3&1==1; num+=ch>>4&1==1; num+=ch>>5&1==1; num+=ch>>6&1==1; num+=ch>>7&1==1;
printf("字符'%c'的二进制表示中含有%d个1n",ch,num);
system("pause"); return 0; }