编写一个c函数,该函数给出一个字节中被置为1的位的个数

xiaoxiao2021-02-28  97

#include <stdio.h> int func(char ch) { int i; int n=0; for(i=0;i<8;i++) { if((ch>>i)&1==1) { n++; } } return n; } int main() { char ch; scanf("%c",&ch); int n = func(ch); printf("%d\n",n); return 0; }

首先我们知道在内存里面所有的东西都是由0,1组成的,一个字符里面有8个字节,所有有个外循环8次;

每次对ch右移i个位置并与1取&,如果结果为1证明当前位置的最低位是1,令计数的n++就能得到最终需要的1的个数。

转载请注明原文地址: https://www.6miu.com/read-61754.html

最新回复(0)