c语言中输出非负整数用二进制表示时一共有多少个1或者0组成
001、
#include <stdio.h> // 文件包含指令, 头文件 int main(void) { unsigned i; // 声明一个unsigned int 型的变量。 printf("i = "); scanf("%u", &i); // 此处从键盘输入,使用%u运算符 int j = 0; // 声明1个int型变量, 并初始化为0int length_unsigned_int = sizeof(unsigned int); ## 此处利用sizeof函数返回unsigned int型变量的长度(字节数) while(i) // 循环条件为i不为0 { if(i & 1u) // 判断i用二进制表示时,末尾的数字是否为1, 如果是,判定结果为1, 同时j递增 { j++; } i >>= 1; // 同时i的二进制数向右移动一位 } // 当i中全部为0时, i为0, 循环结束 printf("j(1) = %d\n", j); // 输出1的计数 printf("k(0) = %d\n", length_unsigned_int * 8 - j); // unsigned int型的总字节数 * 8(总位数), 然后减去1的个数,等位剩余的0的位数 return 0; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
2021-08-16 c primer plus 6编程练习