下面是用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的个数

用c语言求输入一个字符型数据1 字节求它 8 个二进制数位上的数分别是什么并统计其中有多少个1;

原文地址: https://www.cveoy.top/t/topic/iSRZ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录