义海豪情国语百度云:以C语言编程计算tc目录下aa.bmp文件里二进制1的个数

来源:百度文库 编辑:高考问答 时间:2024/04/30 14:29:07
以C语言编程计算tc目录下aa.bmp文件里二进制1的个数
到底哪个是正确答案啊?
这个题目是我考试题目啊
哪个是正确的啊?

#include <stdio.h>
#include <stdlib.h>
void main()
{

FILE *bmp=fopen("tc\\aa.bmp","rb");
char i,temp; long n=0;
while (fread(&temp,1,1,bmp) )
for (i=0;i<8;i++,temp>>=1) if (temp&1) n++;
fclose(bmp);
printf("N=%ld",n);
}

楼上好快!强人
#include <stdio.h>

char func(char ctemp)
{
char ret = 0;
while (ctemp)
{ctemp &= ctemp - 1;
++ret; }
return ret;
}
void main(void)
{
FILE *f=fopen("tc\\aa.bmp","rb");
char ch;
unsigned long nCount=0;
while (fread(&ch,1,1,f) )
nCount+=func(ch);
fclose(f);
printf("%ld",nCount);
}