C语言实现字符二进制转换及统计1的个数
下面是用C语言实现的代码:
#include <stdio.h>
int main() {
char ch;
int count = 0;
printf("请输入一个字符:");
scanf("%c", &ch);
printf('%c的二进制数位为:', ch);
for(int i = 7; i >= 0; i--) {
int bit = (ch >> i) & 1;
printf("%d ", bit);
if(bit == 1) {
count++;
}
}
printf("\n其中有%d个‘1’\n", count);
return 0;
}
这段代码首先使用scanf函数获取用户输入的字符,并将其存储在变量ch中。
然后,使用一个循环遍历ch的二进制数位,从最高位到最低位。每次循环中,通过右移i位并与1进行按位与操作,可以获取第i位的值(0或1)。同时,统计值为1的位的个数。
最后,输出结果,包括输入字符的二进制数位和其中1的个数。
原文地址: https://www.cveoy.top/t/topic/qyQP 著作权归作者所有。请勿转载和采集!