如何用C语言实现十进制到二进制的转换并计算二进制中1的个数

news/2024/11/23 5:08:34/
<pre class="csharp" name="code">#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
int main()
{int num, temp, i = 0, k = 0, arr[100];printf("请输入一个十进制的数:\n");scanf("%d", &num);while (num != 0){temp = num % 2;num = num / 2;arr[i++] = temp;}while (i > 0){temp = arr[--i];if (arr[i] == 1)k++;printf("%d", temp);}printf("\n");printf("一共有%d个1", k);system("pause");return 0;
}
小结:十进制转换成二进制要注意:每次取得的余数要先暂时存放在一个数组里,因为最后转换成的二进制是通过十进制对2求余的余数自下而上排列的, 需要将余数逆置否则就会发生错误.。这个程序需要一个while循环,因为不知道它的循环次数所以不能采用for循环。
该程序是运行过的,没有问题,因为是菜鸟级别的所以有什么不足之处希望大家能提出来,让我及时改正。 大笑

方法二:用按位与右移的运算来实现
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
int main()
{int data,count=0;scanf("%d", &data);while (data > 0){{ if (data & 0x1)count++;}data >>= 1;}printf("%d个1", count);system("pause");return 0;
}

方法三:减一操作来实现

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
int main()
{int data,count=0;scanf("%d", &data);while (data){data&=(data - 1);count++;}printf("%d个1", count);system("pause");return 0;
}



http://www.ppmy.cn/news/694624.html

相关文章

1-10的阶乘之和

对于十以内的阶乘之和代码如下&#xff1a; #include<stdio.h> int main() {int i 0;int sum_mul 1;int sum_add 0;for (i 1; i < 10; i){sum_mul sum_mul * i;sum_add sum_add sum_mul;}printf("%d\n", sum_add);return 0; }相较于1-10的相加&…

c语言中1e-10啥意思,【1e+10是多大的数?那个e是什么含义?】-1e-

概述:本道作业题是柯汾汲同学的课后练习,分享的知识点是1e,指导老师为万老师,涉及到的知识点涵盖:【1e+10是多大的数?那个e是什么含义?】-1e-物理,下面是柯汾汲作业题的详细。 题目:【1e+10是多大的数?那个e是什么含义?】-1e-物理 楼上的说得都不是太正确,这里的e应…

C1认证学习一(进制学习)

C1认证学习一&#xff08;进制学习&#xff09; 文章目录 C1认证学习一&#xff08;进制学习&#xff09;目标进制的定义二进制八进制十六进制十进制 准换方法其他进制转换为十进制十进制转换为其他的进制二进制转换为八进制二进制转换为十六进制十六进制与八进制之间的转换 目…

求1-20阶乘和

要求&#xff1a;求1-20的阶乘和 #include <stdio.h> int main() {int a;double b, c;b 1;c 0;for (a 1; a < 20; a){b b * a; //累乘c c b; //累加}printf("%e", c);return 0; }运行结果 2.561327e1…

建模方法(十)-灰色预测模型GM(1,1)

**引言&#xff1a;**灰色预测的主要特点是模型使用的不是原始数据序列&#xff0c;而是生成的数据序列。其核心体系是灰色模型&#xff08;Grey Model&#xff0c;简称GM&#xff09;&#xff0c;即对原始数据作累加生成&#xff08;或其它方法生成&#xff09;得到近似的指数…

Java实现 LeetCode 233 数字 1 的个数

233. 数字 1 的个数 给定一个整数 n&#xff0c;计算所有小于等于 n 的非负整数中数字 1 出现的个数。 示例: 输入: 13 输出: 6 解释: 数字 1 出现在以下数字中: 1, 10, 11, 12, 13 。 《编程之美》上这样说: 设N abcde ,其中abcde分别为十进制中各位上的数字。 如果要计…

C1认证学习十四、十五(算法常识、HTML Head 头)

C1认证学习十四、十五&#xff08;算法常识、HTML Head 头&#xff09; 文章目录 C1认证学习十四、十五&#xff08;算法常识、HTML Head 头&#xff09;十四&#xff08;算法常识&#xff09;任务背景任务目标查找算法1、顺序查找2、二分查找3、树表查找4、哈希查找5、其他查找…

1一9数字行书写法_1一9数字行书写法

用行书写数字1到9一般按照这9个数字的大写形式进行书写&#xff0c;其中数字1-9分别对应的大写是&#xff1a;壹、贰、叁、肆、伍、陆、柒、捌、玖、拾。行书书写这十个字要注重字体结构协调、错落有致、上下贯穿。 行书是介于楷书和草书之间的字体&#xff0c;不像草书那么潦草…