编写一个C程序,实现以下功能:编写一个函数decTobin(int n),该函数能将一个十进制数n转换成二进制数,输入13 输出 1101。在main函数中输入整数n,调用函数,输出它的二进制
题目要求:
编写一个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,调用函数,输出它的二进制相关推荐
- 10进制转37进制c语言程序,十进制数37转换成二进制数是( )。A.(100001)2B.(100101)2C.(101001)2D.(110001)2_考题宝...
案例: 在电脑课上通常我都会碰到,对学生在操作过程中出现的一些问题的处理.有一次.学生在开机后发现"长时间"进不了桌面,于是纷纷叫了起来,有几个还在乱按键盘.此时,我除了教育学生注 ...
- 【小工具类】将一个十进制数转化成二进制/四进制/八进制/16进制
先直接上完整代码: public class Test {public static void main(String[] args) {int num = 100;System.out.printl ...
- JAVA 编写程序实现如下功能:一个线程进行如下运算1*2+2*3+3*4+……+19*20,而另一个线程则每隔一段时间读取前一个线程的运算结果。
编写程序实现如下功能:一个线程进行如下运算12+23+34+--+1920,而另一个线程则每隔一段时间读取前一个线程的运算结果. class Count{private int sum;Count(i ...
- 编写程序,测试字符串“你好,欢迎来到Java世界”的长度,将字符串的长度转换成字符串进行输出,并对其中的“Java”四个字母进行截取,输出截取字母以及它在字符串中的位置。
编写程序,测试字符串"你好,欢迎来到Java世界"的长度,将字符串的长度转换成字符串进行输出,并对其中的"Java"四个字母进行截取,输出截取字母以及它在字符串 ...
- 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( ...
- c++第二周任务一*(1‐1)编写递归函数将十进制数转换成二进制数输出。
/任务一 /*(1‐1)编写递归函数将十进制数转换成二进制数输出. * 算法说明: */ #include <iostream> using namespace std; void d2b ...
- c语言实现输入任何十进制数,转换为相对应的2进制数 递归,我做的是这个C语言程序:采用递归方法,实现将十进制整数转换成二进制数(含整数部分与小数部分)...
满意答案 yhATL62 2013.05.05 采纳率:45% 等级:12 已帮助:13717人 我写了个10进制小数,转二进制的程序(包含整数部分和小数部分): #include #defin ...
- c语言程序有且只有一个什么函数,一个c程序有且仅有一个什么函数
一个c程序有且仅有一个主函数(main()函数).一个C语言源程序可以由一个或多个源文件组成.一个源程序不论由多少个文件组成,都有一个且只能有一个main函数,即主函数. main函数是C程序的入口函 ...
- 有一个小白程序员,写了一个只能对5个数字进行排序的函数,现在有25个不重复的数字,
题目:有一个小白程序员,写了一个只能对5个数字进行排序的函数,现在有25个不重复的数字,请问小白同学最少调用几次该函数,可以找出其中最大的三个数? A.5 B.6 C.7 D.8 答案:C 解析:第一 ...
最新文章
- 黄聪:php实现上传图片和等比例缩略图压缩图片
- 多用户虚拟Web3D环境Deep MatrixIP9 1.04发布
- CV:利用cv2自带两步法haarcascade_frontalface_default.xml、_smile.xml实现对人脸、笑脸同时检测
- java对文件的操作详解,java对各种文件的操作详解
- CTFHub-Web-信息泄露
- 超好看的动漫二次元引导页源码
- Laravel 中使用Goutte + GuzzleHttp 组件设置 headers无效的原因探究以及解决方案
- 写给Android开发者的混淆使用手册
- 想进大厂,先自问 Dubbo 普普通通 9 问能答出来吗!
- 信息学奥赛一本通——解题目录
- win10浏览器闪退_win10自带浏览器闪退解决方法
- c#应用:简单的图片查看器
- 海康视频android 开发实例,海康设备android播放器SDK
- 多个excel表格数据汇总如何完成
- 深度学习中的图像增强
- 帝国CMS数据字典 Ctrl+F查询
- 为什么www.52pjb.net总是不收录,最多只收录首页?
- 求解!!急急急!!!
- nodejs 获取系统环境变量_Node.js中环境变量process.env的一些事详解
- HTML+CSS大作业HTML5期末大作业 旅游酒店网站设计——旅游酒店服务预订(1页) web网页设计—— 出游