|
0 题记 在学习计算机基础或者是数字电子技术、微机原理、单片机、C 语言等课程的时候,都会讲到一个概 念:二进制数。就是这个二进制数难倒了很多的英雄汉,上面罗列的这些课程我都教过,这些课程有一个共 同的知识点就是二进制数,十进制数,十六进制数,还有八进制数以及他们的相互转换,而对于电子类专业 的一门比较重要的课程--单片机,更是要用到二进制数和十六进制数。故而每次我讲课时都会尽量详细的 给学生讲解这些内容。今天上午刚刚结束了两个班的第一堂课,又勾起了我的回忆,让我有一种把这部分知 识点写下来的冲动,给那些刚刚开始学习数字电子技术、单片机、C 语言的学生们。以上是为这篇文章的来历。 1 引子 随着电的使用,电器应用越来越广泛,人们对于电器的要求也越来越高,要求功能强大,还要智能 化,使用简单化,这些要求让数字电子技术应用范围越来越广泛,原先很多采用模拟电路的地方都被数字电 路取代了,特别是对于信号处理方面,随着计算机科学与技术突飞猛进地发展,用数字电路进行信号处理的 优势也更加突出。信号处理的一般方法都是先将模拟信号按比例转换成数字信号,然后送到数字电路进行处 理,最后再将处理结果根据需要转换为相应的模拟信号输出。从一般的模拟信号到数字信号,要经过采样、 量化、编码,最终一个连续的模拟信号波形就变成了一串离散的、只有高低电平之分“0 1 0 1...”变化的数 字信号。自然界来的,或者通过传感器转化的主要是模拟信号,那么为什么要多此一举把它们变为数字信号 呢?原因有以下几点: 一、模拟信号有无穷多种可能的波形,同一个波形稍微变化就成了另一种波形,而数字信号只有两种波 形(高电平和低电平),这就为信号的接收与处理提供了方便。即,数字信号易于传输,抗干扰能力强。 二、模拟信号由于它的多变性极容易受到干扰,其中包括来自信道的和电子器件的干扰,模拟器件难以 保证高的精度(如放大器有饱和失真、截止失真、交越失真,集成电路难免有零点漂移)。而数字电路中有 限的波形种类保证了它具有极强的抗干扰性,受扰动的波形只要不超过一定门限总能够通过一些整形电路 (如斯密特门)恢复出来,从而保证了极高的准确性和可信性,而且基于门电路、集成芯片所组成的数字电 路也简单可*、维护调度方便,很适合于信息的处理。特别是计算机科学技术发展后,很多模拟电路无法实 现的功能都可以在采用数字电路来实现。 而电子计算机的出现,让数字电子技术有了更广阔的发展空间,也让我们的生活更加的丰富。手机带 给我们联络的方便,电脑带给我们工作和娱乐以及学习的便利,天上的飞机,路上的汽车,让我们出行更加 方便,家中的空调冰箱洗衣机微波炉等让我们生活更加舒适。在手机、电脑、飞机、汽车以及家电中都有一 块或者多块的微处理器在工作,而这些微处理器就是由数字电路构成的。 2 0 和 1 的舞蹈 2.1 二进制数的来历 电,发明出来是为人类服务的,那么电路同样的是为人们服务的,也就是说我们需要在电路中能够帮 助我们做平时生活中的事情,这些事情应该是我们不用电也可以来做的。举个例子,譬如我们生活中的数, 我们采用的是十进制数,今年是 2010 年,就是指从耶稣诞生之年到现在有 2010 年了,班上有 45 个人, 买了一条裤子花费 368 元等等,那么在这些数字的背后隐藏着什么呢?我们都知道 1+1=2,但是陈景润花 费了很大的功夫才证明,这说明即使我们看起来很平常的的事情也隐藏着一些我们不知道的因素,在这里我 们不是来讨论 1+1=2 的,因为我们不是顶极的数学家,但关于十进制数,我们可以讨论一下一些普通人都 有能力理解的东西。2010,45,368 这些数字给我们提供了 2 个信息,数码和数位,2010 由三个数码 0,1,2 构成,45 由两个数码 4,5 构成,368 由三个数码 3,6,8 构成,而且这些数码的位置不一 样,那么他们所代表的大小不一样的,如图 1:
图中 10 就是基数,而 103 、 102 、 101 、 100 也就是 1000,100,10,1 就是权。所谓的权,就是在 这个数中占的数值大小。也就是说 2010 中的“2"代表了 2 个“千”,45 中的”4"代表了 4 个“十”,而 368 中 的”8“代表了 8 个“一”,而且同一个数码放在不同的位置上就代表了不同数值,如 555 中,三个 5 的权分别 100,10,1,那么第一个 5 代表的数值就是 5X100,第二个 5 代表的数值是 5X10,的三个 5 代表的数 值是 5X 1。采用这种方法,我们就可以用有限的数码来表示无限的数据了。 总结一下,十进制采用了 0,1,2,3,4,5,6,7,8,9 共 10 个数码,基数是 10,进行运算 的时候,我们采用逢十进一。 这是我们现实生活中需要用到的十进制的一些情况,那么我们在数字电路中必然也要采用这种计数方 法,电路中传输的就是电压和电流,我们要用 10 种不同的状态来表示这 10 个数码有点困难。我们举例来 说吧,譬如有一个电压,0~5V ,那么我们就可以这样来表示 0~9 这 10 个数码,如表 1。 表 1 电压和数码之间的对应关系
接下来就是要制造一个能够精确的实现 0V,0.5V,1V,1.5V……4.5V 等各种电平的基本电路,但这一 件是非常困难的事情。两个相邻的电平只有 0.5V,电路受到干扰,电平偏移 0.5V,那么就变成另外一个数 据了,而要保证电平完全没有漂移是不可能的,所以,十进制数在电路中很难直接实现了。即使勉强实现 了,数据传输的时候又遇到了更大的数据准确性的问题,因为电平经过导线传输的时候会变化,相邻的两个 电平很容易混淆。这种十进制数在数字电路中是没法直接实现,更别说是在微处理器这种高频电路中实现 了。这样必然要另外想办法了。而戈特弗里德·威廉·凡·莱布尼茨(Gottfried Wilhelm von Leibniz,1646 年 7 月 1 日~1716 年 11 月 14 日)在 18 世纪初提出的二进制帮助人们解决了问题,虽然莱布尼茨受中 国的易经八卦启发而发明的二进制数最初不是用来设计电路的,因为那个时候人们才开始研究电的现象,电 灯,电池等都还没有出现。但 20 世纪初人们制造出二极管、三极管、集成电路等的时候,却把二进制拿来 用于电路的设计。二进制数因为只有两个数 0 和 1,状态也只有两种,在电路中实现起来就方便的多了,只 要一个高电平和低电平就可以,甚至说有电流和无电流、有电荷和无电荷都可以表示,这样的话电路的实现 非常简单,而且这种电路也不容易受到干扰,抗干扰性好的多。还是以上面 0~5V 的一个电平来说明,看图2。
从图 2 中可以看到,我们可以认为 0~1V 都是低电平,2.4V~5V 都是高电平,若假设低电平代表 0,高电 平代表 1,那么我们就实现了二进制数了,这个电路简单,而且易与实现,电平允许有一定的漂移,提高了 抗干扰能力,数据传输可*性高的多。所以数字电路中采用了二进制数。 假若以高电平代表 1,低电平代表 0,则称为正逻辑系统,反之,以高电平代表 0,低电平代表 1, 则称为负逻辑系统,一般来说,我们采用正逻辑系统。 2.2 二进制数与十进制数 接下来我们就研究一下二进制数,注意了,下面我们纯粹的研究二进制数,跟二进制的数字电路实现 没有任何的关系了。 借助于十进制数的思路,我们的二进制数有两个数码:0 和 1,基数是 2,进行运算的时候是逢二进 一。举例来说明,比如二进制数 10110(注意,读这个数据的时候只需要把每一位数据读出来就可以了, 千万不要采用十进制数的读法。即这个数读作:一 零 一 一 零,而不是一万零一百一 十,若按照十进制数 的读法,会让别人笑话的。切记切记)。对于这个数,我们知道它的每一位都有权,而且权是 2 的幂,即 10110 = 1X24 0X23 1X22 1X21 0X20 若我们把这些数字相加计算出数值来,就会发现它是一个 十进制数 22,这样我们就把一个二进制数转换为十进制数了。我们接下来就讲二进制数和十进制数的相互 转换问题。 随便拿出一本教材来,关于二进制数和十进制数的相互转换,都讲了一个方法:二进制数转换为十进 制数采用加权法,就是上面说的例子。而十进制数转换为二进制数则分为整数部分和小数部分分别转换,整 数部分用除 2 取余法,小数部分采用乘 2 取整法,然后要列竖式来求解。一般来说,我们在进行应用的时 候,譬如数字电路,单片机中使用的数字都是整数,而且只需要我们快速的计算出这个数据即可,若按照除
相关推荐
热点推荐
二进制格雷码与自然二进制码的互换分析其中采用循环二进制编码的绝对式编码器,其输出信号是一种数字排序,不是权重码,每一位没有确定的大小,不能直接进行比较大小和算术运算,也不能直接转换成其他信号,要经过一次码变换,变成自然二进制码。 2020-09-23 16:23:04 7515鸿蒙二进制数组创建背景 c++层数据都是二进制,需要转换成arrayBuffer透传到ets层给业务使用,但是鸿蒙的使用下面两个api创建出来的二进制数组数据都是错误的。 接口 2024-01-31 15:24:26 2125二进制数逻辑运算是怎么运算的“与” , 其结果必为 0; 凡同 1 相“与” , 其结果不变(0 同 1 相“与”仍为 0, 1 同 1 相“与”仍为 1) 。因此, 如果一个 8 位二进制数, 想要保留其中的几位而屏蔽(清除) 掉其余 2019-12-25 16:36:41 二进制格雷码与自然二进制码的互换位、13位、14位或更高位等多种。其中采用循环二进制编码的绝对式编码器,其输出信号是一种数字排序,不是权重码,每一位没有确定的大小,不能直接进行比较大小和算术运算,也不能直接转换成其他信号,要经过一次 2011-03-08 14:16:59 二进制码详解 Binary-Coded-Decimal,二进制编码的十进制码。 这种编码仅仅使用4位二进制数来表示十进制数中的0~9十个数码。二进制数码每位的值称为权或位权。 其中b0位的权为20=1,b1位 2009-04-06 23:55:36 二进制运算问题在LabVIEW中,如何实现一个十六进制的数取反后加1,如FFFFFFCB表示为二进制是11111111111111111111111111001011,取反后 2014-03-15 00:32:43 Labview图像二进制转换问题`各位大神,我想把一张图片通过变成二进制通过TCP传输,现在我把图片转换成二进制文件,但文件只有1KB大小。我想读取但是不知道二进制的图片数据类型。能否帮我画一个简易的读取二进制图片的程序,谢谢` 2017-12-29 09:26:42 labview串口如何接收16位二进制数无论下位机发送的是何种数据,labview从串口接收的时候,总是将每8位二进制数进行接收。比如我现在下位机不停地给串口发送十六进制数:1A2B3C4D5E6F.......,labview从串口接收 2016-12-14 20:19:04 labview编程模拟十进制数到二进制数的转换过程模拟十进制数到二进制数的转换过程,以LED来模拟各个二进制位,并能以动画方式模拟计数的过程。 选择手动方式时,将8个LED变成滑动条中数字的二进制(基数2)表示。例如,如果滑动条设置为数字10(在 2018-12-07 22:20:10 十进制和二进制之间的转换原理十进制和二进制之间的转换 既然一个数可以用二进制和十进制两种不同形式来表示,那么两着之间就必然有一定的转换关系。 由十进制数的一般表示式: 可以得到整数的一般表达式: 将等式两边分别除以2 2009-04-06 23:54:14 如何使用USART接收二进制数我想制作一个以8个LED的形式实现二进制计数器。该计数器通过USART发送一个8位二进制数,并让8个LED显示数字(如果位为0,则指示灯熄灭,当位为1时指示灯亮)。这样做的最佳方法是什么? 2018-10-08 14:07:42 如何理解二进制运算规则 二进制是如何运算的:将二进制数(10011111011.11101100)2转换成十六进制数。(10011111011.11101100)2=(4FB.EC)16其他进制转换为二进制:(1)十进制转换为二进制整数转换 2019-12-11 17:49:02 怎么将16位二进制数转换成十进制数的函数?有没有人建立一个将16位二进制数转换成十进制数的函数?谢谢,JB 以上来自于谷歌翻译 以下为原文Has anyone built a function(s) that converts a 16-bit binary number into decimal?Thanks,JB 2019-03-26 11:21:54 把数组中的十进制数按字符串合并,怎么再表示成二进制.....`把数组中的十进制数按字符串合并,怎么再表示成二进制?最终把二进制数再转成十进制输出?看下图:上图十进制的数组如第一列0 1 0怎样把它看成二进制010,然后转化为2?其他列也这们处理 ,怎么实现?` 2013-04-05 18:50:14 提取一个8位二进制数的低3位和另一个8位二进制数的高5位组合成一个新的8位二进制数,用C语言怎么实现?提取一个8位二进制数的低3位和另一个8位二进制数的高5位,然后组合成一个新的8位二进制数,用C语言怎么实现? 2019-01-17 06:35:14 Marconi二进制数据采集软件实现本文基于SuperstarⅡGPS 接收机,开发了基于Marconi 二进制数据采集软件。本软件能够动态显示ID20、ID21、ID22、ID23 和ID75 模块中各相关参数;生成动态存储Marconi二进制原始语句及其 2009-12-31 14:02:48 18二进制与BCD码转换资料6位二进制数转换成BCD码的的快速算法-51单片机2010-02-18 00:43在做而论道上篇博文中,回答了一个16位二进制数转换成BCD码的问题,给出了一个网上广泛流传的经典转换程序。
2010-08-19 17:42:07 96双字节二进制无符号数除以单字节二进制数汇编语言程序双字节二进制无符号数除以单字节二进制数
入口条件:被除数在R4、R5中,除数在R7中。出口信息:OV=0 时,单字节商在R3中,OV=1 时溢出 2009-01-19 22:43:13 4576三字节二进制无符号数除以单字节二进制数三字节二进制无符号数除以单字节二进制数
入口条件:被除数在R3、R4、R5中,除数在R7中。出口信息:OV=0 时,双字节商在R4、R5中,OV=1 2009-01-19 22:47:06 1901C语言入门教程-二进制文件二进制文件
二进制文件非常类似于结构体数组,只不过这些结构体被保存在一个磁盘文件而非内存数组中。因为是使用磁盘保存二进制文件中的结构体,所以您可以创 2009-07-29 14:24:26 2180什么是二进制计数器,二进制计数器原理是什么?什么是二进制计数器,二进制计数器原理是什么?
计数器是数字系统中用得较多的基本逻辑器件。它不仅能记录输入时钟脉冲的个数,还可以实现 2010-03-08 13:16:34 31861二进制电平,什么是二进制电平二进制电平,什么是二进制电平
在二进制数字通信系统中,每个码元或每个符号只能是“1”和“0”两个状态之一。若将每个码元可能取的状态增 2010-03-17 16:51:58 2671本的二进制加法/减法器,本的二进制加法/减法器原理本的二进制加法/减法器,本的二进制加法/减法器原理
两个二进制数字Ai,Bi和一个进位输入Ci相加,产生一个和输出Si,以及一个进位输 2010-04-13 11:11:55 5483Keil C51中直接使用二进制数方法在Keil C51中数不能直接以二进制形式赋值,虽然在8051的汇编中是可以的。二进制数虽然书写长,易出错,但是由于是一位位写的,所以程序设计者能够很明确的看到每一位的状态,看得比较直观。 2011-01-30 17:31:15 7835智能仪表多字节二进制数转换BCD码多字节无符号二进制数转BCD 码在以单片机为核心的智能仪表中应用很普遍。本文介绍一种新的转换方法,并给出三字节二进制数转BCD 码的源程序,该程序执行时间仅为原来的1.3%,效率 2011-06-23 16:58:38 54bcd码和二进制码有什么区别二进制是由1和0两个数字组成的,它可以表示两种状态,即开和关。所有输入电脑的任何信息最终都要转化为二进制。目前通用的是ASCII码。最基本的单位为bit。BCD码亦称二进码十进数或二-十进制代码。 2017-11-24 09:26:27 42382二进制数据压缩算法二进制数据压缩算法二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”,由18世纪德国数理哲学大师莱布尼兹发现。当前的计算机系统使用的基本上是二进制系统 2018-02-28 09:31:06 213408421bcd码转换二进制算机内毫无例外地都使用二进制数进行运算,但通常采用8进制和十六进制的形式读写。对于计算机技术专业人员,要理解这些数的含义是没问题,但对非专业人员却不那么容易的。由于日常生活中,人们最熟悉的数制是十进制,因此专门规定了一种二进制的十进制码 2018-03-02 09:20:48 74827![]() 格雷码与二进制的转换格雷码,又叫循环二进制码或反射二进制码,格雷码是我们在工程中常会遇到的一种编码方式,它的基本的特点就是任意两个相邻的代码只有一位二进制数不同,这点在下面会详细讲解到。格雷码的基本特点就是任意两个相邻的代码只有一位二进制数不同。 2018-03-02 15:48:53 19588![]() 函数转换BCD编码二进制数为整型数BCD码亦称二进码十进数或二-十进制代码。用4位二进制数来表示1位十进制数中的0~9这10个数码。它是一种二进制的数字编码形式,用二进制编码的十进制代码。BCD码这种编码形式利用了四个位元来储存一个十进制的数码,使二进制和十进制之间的转换得以快捷的进行。 2018-03-14 10:15:42 7346如何利用二进制数实现BCD码的转换编写子程序Bin2BCD、BCD2Bin实现二进制数到压缩BCD码的相互转换。待转换的二进制数存放在w寄存器内,子程序调用完成后得到的BCD码仍存放在w寄存器内返回。例如: 2018-05-19 10:59:00 29148![]() 二进制与十进制数对照显示实验,十进制,二进制对照二进制与十进制数对照显示实验,十进制,二进制对照
关键字:CD4040,CD4511,数码管
作者:李岗
1、电路 2018-09-20 18:26:41 3669LabVIEW二进制数组转换二进制字符串的详细资料免费下载本文档的主要内容详细介绍的是LabVIEW二进制数组转换二进制字符串的详细资料免费下载,需要的下载吧。 2018-11-29 08:00:00 16KEIL C51二进制数输入宏的详细方法程序说明本文档的主要内容详细介绍的是KEIL C51二进制数输入宏的详细方法程序说明。在C语言中有十进制,十六进制,八进制;没有二进制的定义,在C51中使用十六进制表示有时不太直观,下面介绍几种方法表示二进制 2019-03-12 17:05:37 17二进制数转换成bcd码二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”。 2019-11-22 07:01:00 12790二进制数字编号基于二进制数的两个最常见的导数是Octal和十六进制编号系统,这两个系统的长度限制为一个字节(8位)或一个字(16位)八进制数可以由3位组和十六进制数由4位组一起表示,这些位的分组用于显示器中的电子 2019-06-24 09:53:18 8876![]() 二进制如何转换为十进制?将二进制转换为十进制(base-2到base-10) )数字和背面是一个重要的概念,因为二进制编号系统构成了所有计算机和数字系统的基础。 2019-06-22 10:21:25 26316由“1”和“0”组成的二进制是怎么回事?在二进制中,每个“1”或“0”叫做一个“比特(bit)”。在10110111(二进制)这个例子里,我们用了8个比特,8个比特可以表示数的范围为0~255共256个数字,最小数为0,即00000000。 2020-06-05 14:26:30 98555![]() labview数值转化:二进制,8进制,16进制,10进制要了解数值转化,首先要了解各个进制的转化代码,这里附上利用LABVIEW中“格式化值”整型数转化代码。 十进制转化为二进制。 2. 十进制转化为八进制 3.十进制转化为十六进制 4.二进制转化 2022-02-07 15:29:04 47479![]() 基于Arduino Uno的二进制时钟该项目是关于使用 Arduino 和两个 LED 矩阵的数字和二进制时钟,带有 MAX72XX 和 RTC(实时时钟),包括几个功能。数字和二进制时钟使用 Arduino、RTC、两个 LED 矩阵 2022-12-20 14:46:01 1你知道十进制转二进制如何进行转换吗?你知道十进制转二进制如何进行转换吗? 当我们提到数字系统时,最常见的是十进制系统和二进制系统。十进制是基于10的系统,而二进制是基于2的系统。在这篇文章中,我们将详细讨论如何将十进制数转换为二进制数 2023-12-20 17:05:47 501310进制转换为二进制的算法10进制转换为二进制是计算机领域中非常重要的一个问题。在计算机中,所有的数据都是以二进制形式进行存储和处理的。因此,我们常常需要将10进制数转换为二进制数来满足计算机处理的需要。 10进制转换 2024-01-11 09:14:29 512810进制转换为二进制的算法的基本原理。十进制数是我们日常生活中最常见的数字系统,它由0到9十个数字组成。而二进制是计算机科学中使用的数字系统,它只由0和1两个数字组成。计算机内部操作的基本单位是位(bit),而以位(bit)为基础的数字系统就是二进制。 现在我 2024-01-15 10:32:01 6432二进制、八进制、十六进制在现实当中有什么意义?二进制、八进制、十六进制在现实当中有什么意义? 二进制、八进制和十六进制在现实生活中有着广泛的应用和重要的意义。这些进制系统在信息技术、计算机科学、通信、电子工程等领域扮演着至关重要的角色。 首先 2024-01-16 11:14:33 8325如何实现二进制和BCD码数据的相互转变?如何实现二进制和BCD码数据的相互转变? 二进制码是将十进制数字表示为二进制数和十进制数的一种表示方法。在计算机系统中,二进制数是最基本的数制表示方法,而BCD码则是用于将数字直接转换为二进制数 2024-02-18 14:51:58 6599二进制串行计数器工作原理是什么?的工作原理进行深入解析,帮助你更好地理解这一数字电路的核心组件。 一、二进制串行计数器的基本概念 二进制串行计数器是一种基于二进制数制的计数器,它按照二进制数的规律进行计数。与传统的三位或四位二进制计数器不同,串 2024-05-28 15:52:09 1987二进制处理中的一些技巧在二进制和十进制的处理中,有时候一些小技巧是很有用的。
1、把十进制数转换成二进制数
(1)在MATLAB中有一个函数dec2bin,可以把正整数转换为2进制
(2)对于负数有这样一个结论:N位二进制负数X的补码对应的无符号数为2N +X 2024-07-05 11:51:53 1487二进制编码器工作原理 如何选择二进制编码器二进制编码器是一种数字电路,它将输入的二进制代码转换为对应的输出信号。在数字系统中,编码器用于将数据从一种形式转换为另一种形式,以便于处理和传输。 二进制编码器工作原理 输入与输出关系 : 二进制 2024-11-06 09:44:16 3563二进制编码器应用场景 二进制编码器与模拟编码器比较编码器是将信息从一种形式或格式转换为另一种形式的设备。在数字和模拟系统中,编码器扮演着至关重要的角色。二进制编码器和模拟编码器是两种常见的编码器类型,它们在不同的应用场景中有着各自的优势和局 2024-11-06 09:45:42 1988二进制编码器的种类及特点二进制编码器是一种电子电路,用于将二进制信号转换为其他格式,如十进制、格雷码等。以下是一些常见的二进制编码器种类及其特点: 优先编码器(Priority Encoder) : 特点 :优先编码器能够 2024-11-06 09:47:07 2121hex格式和二进制的区别HEX格式和二进制在多个方面存在显著的区别。以下是对这两者的对比: 一、定义与表示方式 HEX格式 : HEX,全称为Intel HEX,是一种用于存储和传输数据到嵌入式系统(如单片机)的文件格式 2024-11-18 15:24:19 2580bcd编码的应用 bcd与二进制的区别BCD(Binary-Coded Decimal)编码是一种二进制编码形式,用于表示十进制数字。它将每个十进制数字(0-9)直接编码为一个四位二进制数。BCD编码的主要优点是易于阅读和理解,因为它 2024-12-20 17:11:11 4699 |
电子发烧友App
































评论