题目要求

编写一个C程序,实现以下功能:
//编写一个函数decTobin(int n),该函数能将一个十进制数n转换成二进制数,输入13 输出 1101。
//在main函数中输入整数n,调用函数,输出它的二进制数。

二进值怎么来的?为什么要定义二进值?

要解答这个问题,从计算机的起因开始说起,我的涉猎不多,可能知识略有缺漏。

我们知道,生活之中总是存在着只有两面的事物,开关中的开与关,们或非,事物判断的对与错,而在物理中,存在着正电和负电的知识。我们知道,计算机是需要供电的,恰巧的是,通过0和1来表示正电和负电,或许是计算机甚至人类数学上最美的语言了。计算机只读得懂0,1,早期科学家用0和1构建起整一个计算机的科学王国。

二进值其实和我们熟络的十进制没有什么不同,但这里需要引出一个概念,加权运算,我们先来复习一下十进制的数计算法则。

以15举例,是不是十位有1,个位有5?根据加权运算:1*10一次方 + 5*10零次方,自然等于15.

再以1605为例,根据加权运算:1*10三次方+6*10二次方+0*10一次方+5*10零次方。自然等于1605.

因为是10进制,所以所有的权是以10来表示,如果是2进制,大家想想,是不是该用2来表示权?

明白了加权运算的原理

再来看二进制:

二进值1101转换成十进制 根据加权运算; 1*2三次方+1*2二次方+0*2一次方+1*2零次方,结果为8+4+0+1 = 13

那十进制转换成二进制是怎么操作呢,这里说起来有点麻烦,2进制只有两种可能结果0或1,人们规定,当一个数能被二整除的时候,这个数是二的倍数,这不就代表进位的意思嘛,举个例子,60能被10整除,所以60是由10进位过来的,而二进制的进位是逢二进一,只要你是二的倍数,那肯定就会进一。所以规定整数除2,如果能被除尽,就记‘0’,否则就记‘1’

代码如下:

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#define MAX 33
/*编写一个C程序,实现以下功能:
编写一个函数decTobin(int n),该函数能将一个十进制数n转换成二进制数,输入13 输出 1101。
在main函数中输入整数n,调用函数,输出它的二进制数。
*/
char s[MAX];
void decTobin(int n) {int i = 0;while(n > 0){if (n % 2 == 1) {s[i] = 1;i++;}else {s[i] = 0;i++;}n /= 2;}for(int j = i - 1;j>=0;j--)printf("%d", s[j]);
}
int main() {int n;scanf("%d", &n);decTobin(n);
}

编写一个C程序,实现以下功能:编写一个函数decTobin(int n),该函数能将一个十进制数n转换成二进制数,输入13 输出 1101。在main函数中输入整数n,调用函数,输出它的二进制相关推荐

  1. 10进制转37进制c语言程序,十进制数37转换成二进制数是( )。A.(100001)2B.(100101)2C.(101001)2D.(110001)2_考题宝...

    案例: 在电脑课上通常我都会碰到,对学生在操作过程中出现的一些问题的处理.有一次.学生在开机后发现"长时间"进不了桌面,于是纷纷叫了起来,有几个还在乱按键盘.此时,我除了教育学生注 ...

  2. 【小工具类】将一个十进制数转化成二进制/四进制/八进制/16进制

    先直接上完整代码: public class Test {public static void main(String[] args) {int num = 100;System.out.printl ...

  3. JAVA 编写程序实现如下功能:一个线程进行如下运算1*2+2*3+3*4+……+19*20,而另一个线程则每隔一段时间读取前一个线程的运算结果。

    编写程序实现如下功能:一个线程进行如下运算12+23+34+--+1920,而另一个线程则每隔一段时间读取前一个线程的运算结果. class Count{private int sum;Count(i ...

  4. 编写程序,测试字符串“你好,欢迎来到Java世界”的长度,将字符串的长度转换成字符串进行输出,并对其中的“Java”四个字母进行截取,输出截取字母以及它在字符串中的位置。

    编写程序,测试字符串"你好,欢迎来到Java世界"的长度,将字符串的长度转换成字符串进行输出,并对其中的"Java"四个字母进行截取,输出截取字母以及它在字符串 ...

  5. c语言编写一个程序,将一个十进制数转换为二进制数,c语言编写一个程序,将十进制整数n 转换成二进制数...

    #include int transfer(int x) { int p=1,y=0,yushu; while(1) { yushu=x%2; x/=2; y+=yushu*p; p*=10; if( ...

  6. c++第二周任务一*(1‐1)编写递归函数将十进制数转换成二进制数输出。

    /任务一 /*(1‐1)编写递归函数将十进制数转换成二进制数输出. * 算法说明: */ #include <iostream> using namespace std; void d2b ...

  7. c语言实现输入任何十进制数,转换为相对应的2进制数 递归,我做的是这个C语言程序:采用递归方法,实现将十进制整数转换成二进制数(含整数部分与小数部分)...

    满意答案 yhATL62 2013.05.05 采纳率:45%    等级:12 已帮助:13717人 我写了个10进制小数,转二进制的程序(包含整数部分和小数部分): #include #defin ...

  8. c语言程序有且只有一个什么函数,一个c程序有且仅有一个什么函数

    一个c程序有且仅有一个主函数(main()函数).一个C语言源程序可以由一个或多个源文件组成.一个源程序不论由多少个文件组成,都有一个且只能有一个main函数,即主函数. main函数是C程序的入口函 ...

  9. 有一个小白程序员,写了一个只能对5个数字进行排序的函数,现在有25个不重复的数字,

    题目:有一个小白程序员,写了一个只能对5个数字进行排序的函数,现在有25个不重复的数字,请问小白同学最少调用几次该函数,可以找出其中最大的三个数? A.5 B.6 C.7 D.8 答案:C 解析:第一 ...

最新文章

  1. 黄聪:php实现上传图片和等比例缩略图压缩图片
  2. 多用户虚拟Web3D环境Deep MatrixIP9 1.04发布
  3. CV:利用cv2自带两步法haarcascade_frontalface_default.xml、_smile.xml实现对人脸、笑脸同时检测
  4. java对文件的操作详解,java对各种文件的操作详解
  5. CTFHub-Web-信息泄露
  6. 超好看的动漫二次元引导页源码
  7. Laravel 中使用Goutte + GuzzleHttp 组件设置 headers无效的原因探究以及解决方案
  8. 写给Android开发者的混淆使用手册
  9. 想进大厂,先自问 Dubbo 普普通通 9 问能答出来吗!
  10. 信息学奥赛一本通——解题目录
  11. win10浏览器闪退_win10自带浏览器闪退解决方法
  12. c#应用:简单的图片查看器
  13. 海康视频android 开发实例,海康设备android播放器SDK
  14. 多个excel表格数据汇总如何完成
  15. 深度学习中的图像增强
  16. 帝国CMS数据字典 Ctrl+F查询
  17. 为什么www.52pjb.net总是不收录,最多只收录首页?
  18. 求解!!急急急!!!
  19. nodejs 获取系统环境变量_Node.js中环境变量process.env的一些事详解
  20. HTML+CSS大作业HTML5期末大作业 旅游酒店网站设计——旅游酒店服务预订(1页) web网页设计—— 出游

热门文章

  1. Mybase到期 破解
  2. Snowflake如日中天是否代表Hadoop已死?大数据体系到底是什么?
  3. 基础组件完善的今天,如何通过业务组件提效?
  4. 技术干货 | mPaaS 框架下如何使用 Crash SDK 对闪退进行分析?
  5. Flink 与 Hive 的磨合期
  6. 蚂蚁金服资深总监韩鸿源:企业级数据库平台的持续与创新
  7. 趣头条基于 Flink 的实时平台建设实践
  8. 云原生数据库如何打造业务弹性
  9. 服务化改造实践(二)| Dubbo + Kubernetes
  10. Kubernetes之路 3 - 解决服务依赖