




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章内容提示单片机常用数制、编码及数据格式2.1数制2.2
数制之间的转换
2.3
二进制数的运算
2.4计算机中数的表示方法
2.1数制 数字系统中最常用十、二、八和十六进制。 在数字系统中,十进制不便于实现。原因是很难设计一个电子器件,使其具有10个不同电平。相反,设计一个具有两个工作电平的电子电路却很容易。
2.1.1十数制 定义:按进位原则进行计数,称为进位计数制。 十进制数有两个主要特点:
(1)有10个不同的数字符号:0,1,2,3,4,5,6,7,8,9;
(2)低位向高位进位的规律是“逢十进一”。 如345.56中从左到右分别代表300、40、5、0.5和0.06个计数单位。 该数中3的位权最大,称之为最高有效位(MSD),6的位权最小,称之为最低有效位(LSD)。实际上:345.56=(3×10+2)+(4×10+1)+(5×100)+(5×10-1)+(6×10-2)
任何数值均可表示为每个数字与其位权的乘积之和。上式中的10称为十进制的基数,102、101、100、10-1、10-2称为各数位的权。
(3)两位十进制,可以表示102=100个不同的数值(0~99);用三位十进制,可以表示103=1000个不同的数值(0~999),依次类推。一般情况下,N位十进制,可以表示10N个不同的数值(0~10N-1)。
2.1.2十进制计数
采用十数制计数时,最低位每一步都在变化,十位每10步变化一次,百位每100步变化一次,依次类推。即
0123456789 1011……9596979899 100101102……995996997998999 ……
2.1.3二进制 特点:1、只有“0”和“1”两个符号或可能的数值,因此,用二进制表示一个数时所用位数较多。
2、进位规律为“逢二进一”,图2-2中的二进制数1011.011。对应的十进制数值为:1011.0112=(1×23)+(0×22)+(1×21)+(1×20)+(1×2-1)
+(1×2-2
)+(1×2-3
)
=8+0+2+1+0+0.25+0.125 =11.37510
注意:下标(2和10)表示基数,避免数制的混淆。 在二进制中,数位简称为位(bit)。最左边的一位是最高有效位(MSB),最右边是最低有效位(LSB)。2.1.4二进制计数二进制计数时,通常要限定位数。这与电路、CPU的位数或地址宽度等有关。例如,8位单片机,CPU一次可并行处理8位二进制数,即绝对值不大于111111112的数。16根地址线,它可寻址的地址就不会超过216(个)。8位、16位由此而来。
二进制计数方法: 以四位二进制为例。如图2-3所示,计数起始于各位全为0,称为0状态。适用于十进制计数规则在二进制中仍然适用,N位二进制可实现2N计数。
【例2-1】8位、10位、12位、16位二进制数中最大的数分别是多少? 解:
8位:2N-1=28-1=25510=111111112 10位:2N-1=210-1=102310=11111111112 12位:2N-1=212-1=409510=1111111111112 16位:2N-1=216-1=6553510=11111111111111112
【例2-2】8位、10位、12位、16位二进制能表示的最大状态数分别是多少? 解:
8位:2N=28=25610=1000000002 10位:2N=210=102410=100000000002 12位:2N=212=409610=10000000000002 16位:2N=216=6553610=100000000000000002
请熟记这几组数据,今后会常用到。10位、12位、16位二进制能表示的最大状态数常称为1K、4K、64K。2.1.5八进制 在八进制中,有0、1、2、…、7共8个不同的数码,采用“逢八进一”的原则进行计数。如(503)8可表示为: (503)8=5×82+0×81+3×80=(328)102.1.5十六进制
有0、1、2、…、9、A、B、C、D、E、F共16个不同的数码,进位方法是“逢十六进一”。 例如(3A8.0D)16可表示为:(3A8.0D)16 =3×162+10×161+8×160+0×16-1+13×16-2 =(936.05078)10
一般而言,对于用R进制表示的数N,可以按权展开为:
当R分别为2、8、10、16时,对应二、八、十、十六进制。2.2数制之间的转换 在数字系统中,均使用二进制,这意味着,将十进制输入数字系统之前,必须转换为二进制。 同样,在数字系统的输出部分,二进制必须转换为十进制数,以方便人们读取。
除2、10进制外,数字系统中还广泛使用8和16进制,8和16进制的优点是可以方便地与二进制进行相互转换。 在数字系统中,可能同时会用到3~4种数制,因此,理解一个系统的运算过程,要有进行数制间互换的能力。2.2.1二、十六进制向十进制转换的方法 由于2、16进制都属于位权计数系统,通过按权展开法将他们转换为等值的十进制数,再将各位的位权相加在一起即可。
【例2-3】将数(10.101)2,(46.12)8,(2D.A4)16转换为十进制数。解: (10.101)2=1×21+0×20+1×2-1+0×2-2+1×2-3=2.625
(46.12)8=4×81+6×80+1×8-1+2×8-2=38.15625(2D.A4)16=2×161+13×160+10×16-1+4×16-2=45.640622.2.2十进制转换成二、十六进制
1.整数部分:除基取余法 分别用基数R不断地去除N的整数,直到商为零为止,每次所得的余数依次排列即为相应进制的数码。最初得到的余数为最低有效位,最后得到的余数为最高有效位。
【例2-4】将数(25)10转换为等值的二进制数。 解:上述转换的过程的流程如图2-4所示。【例2-5】将数(423)10转换为等值的十六进制数。 解:上述转换的过程的流程如图2-5所示。2.小数部分:乘基取整法 用基数R(R=2、8或16)不断地去乘十进制的小数部分,每次取乘积的部分[0~(R-1)],并使乘积再次成为纯小数,直到积的小数部分为零,或所要求的位数为止,将每次乘积的整数依次排列即为相应进制的数码。 最初得到的乘积的整数为最高有效数字,最后得到的乘积的整数为最低有效数字。
【例2-6】将0.687510、0.141610、0.718310分别转换成二、八、十六进制数。采用四舍五入法,保留四位小数。 解:上述转换的过程的流程如图2-6、2-7所示。 即0.687510=0.10112
在图2-6b和图2-6c中,第五位小数,在所对应的数制的基数中排在50%以上,按四舍五入法,应向上进位。所以0.141610=0.11048
同理:0.718310=0.B7E3162.2.3二进制与十六进制之间的相互转换
1.二进制与八进制之间相互转换 由于23=8,所以一位八进制数相当于三位二进制数,反对应关系仍然成立。当带有小数部分时,以小数点为界分别向左、右两边每三位为一组,转换为八进制数,不足三位的以0补足。
2.二进制与十六进制之间的相互转换 与二进制与八进制之间的相互转换类同,只是四位二进制数相当于一位十六进制数,转换方法同上。
【例2-8】将数(25.6875)10转换为等值的十六进制数。 解:利用【例2-4】和【例2-6】的结果,得:25.687510=11001.10112,过程如下
(1)八进制转换:以小数点为界分别向左、右两边每三位为一组,并补0得:
011,001.101,1002
再转换为八进制数得:011,011.101,1002=31.548
验证:31.548=381+180+58-1+48-2
=24+1+0.625+0.0625=25.687510
(2)十六进制转换:以小数点为界分别向左、右两边每三位为一组,并补0得:
0001,1001.10112
再转换为十六进制数得:
0001,1001.10112=19.B16
验证:19.B16=1161+9160+1116-1
=16+9+0.6875=25.687510
2.2.4十进制与十六进制转换实用方法 单片机中,二进制、十六进制有直观的效果。例如,一个8位并行口的状态用11001101B表示,可以一眼看出各位的状态,用十六进制CDH的直观性就差一些,而用十进制表示,205,则完全没有直观感了。 十进制向二或十六进制转换需要多次运用乘除法。为加快手工计算的速度,还需找找捷径。例如,十进制数69的十六进制值为45H。其转换的原理是:
69=64+5=4161+5=45H (十进制数可省略符号D) 这里转换是用心算结合观察法实现的。对256以内的数,这种方法算得的很快。 4位十六进制数范围内的数据转换也有巧门,但先要记住以下几个重要数据:
162=256、163=4096,再结合计算器,就可很快实现4位十六进制数范围以内数据转换了。
【例2-9】将数6500010转换为等值的十六进制数
解:第一步,因为6500010>409610,所以,用6500010除以409610得:15.869…10
第二步,计算器减去整数部分15,得:0.869…10,同时得到十六进制的幂3位F; 第三步,计算器0.869…10,乘以409610得:356010; 第四步,因为356010>25610,所以,用356010除以25610得:13.9062510
第五步,计算器减去整数部分13,得:0.9062510,同时得到十六进制的幂2位D; 第六步,计算器0.9062510,乘以25610得:23210
第七步,因为23210>1610,所以,用23210除以1610得:14.510
第八步,计算器减去整数部分14,得:0.510,同时得到十六进制的幂1位E; 第九步,计算器0.510,乘以1610得:810,就是十六进制的幂0位8; 所以,6500010=FDE816
解法2:一次转换2位十六进制法:先转换出高2位,余数即为低2位。方法与解法1类似,转换次数少了一倍。 第一步,因为6500010>25610,所以,用65000除以256得:253.9062510
第二步,计算器减去整数部分253,得:0.9062510,同时得到十六进制高2位FD; 第三步,计算器0.9062510,乘以25610得:23210,即为十六进制高2位E8
所以,6500010=FDE816
上述内容实用还是没用,很难一概而论。实用中的数制转换,多数需借助于计算进行。有些计算器具有数制转换功能,能直接实现各种数制之间的转换。
2.3二进制数的运算
二进制运算包括算术和逻辑运算两种。算术运算规则与十进制相同,但因基数不同,所以要熟练处理进位与借位情况,避免出错。数有正、负之分,在单片机中称他们为有符号数和无符号数或带符号和不带符号数。 逻辑运算也称为布尔运算,有与、或、非三种基本逻辑运算。
2.3.1二进制数的算术运算 二进制数只有0和1两个数符,其算术运算较为简单,加、减法遵循“逢二进一”、“借一当二”的原则。
1.加法运算规则:0+0=0;0+1=1;1+0=1;1+1=10(有进位)
2.减法运算规则:0-0=0;1-1=0;1-0=1;0-1=1(有借位)
3.乘法运算规则:0×0=0;0×1=1×0=0;1×1=1 4.除法运算规则:0/1=0;1/1=1【例2-11】~【例2-14】
二进制加法:求10011100B+10101011B。 二进制减法:求11100110B-11000101B。 二进制乘法:求1011B×1101B。 二进制除法:求10100101B1111B
解题过程见图2-8~2-11。 结论:①两个8位二进制数相加,结果可能是8位或9位,但不可能出现其他更高位数的情况; ②两个8位二进制数相减,被减数大于等于减数时,结果在8位以下,被减数小于减数时,产生借位。
借位,结果为负值。例如,11012-11102其差应为-00012,因为计算机没有专用表示负数的符号,但运算结果为11112,为引入带符号的运算,我们应学习计算机对有符号数的表示方法,事实上,11112就是-00012的补码形式。 2.3.2二进制数的逻辑运算
1.“与”运算 “与”运算是实现“必须都有,否则就没有”这种逻辑关系的一种运算。运算符为“·”,其运算规则如下:
0·0=0,0·1=1·0=0,1·1=1
2.“或”运算 “或”运算是实现“只要其中之一有,就有”这种逻辑关系的一种运算,其运算符为“+”,“或”运算规则如下:
0+0=0,0+1=1+0=1,1+1=1
3.“非”运算 “非”运算是实现“求”反这种逻辑的一种运算,如变量A的“非”运算记作。其运算规则如下:
4.“异或”运算 “异或”运算是实现“必须不同,否则就没有”这种逻辑的一种运算,运算符为“ ”。其运算规则是:
【例2-15】 ①若X=1011B,Y=1001B,求X·Y。
②若X=10101B,Y=01101B,求X+Y。 ③若A=10101110B,求 。 ④若X=10101101B,Y=01100011B,求XY。 解题流程见图2-12。注意,运算都是按位进行的。2.4计算机中数的表示方法2.4.1位、字节、字 计算机工作时,操作的对象就是二进制数。数据被放在存储器中。计算机对数据的存取及操作单位分为位、字节、字和长字等多种。
1.位(bit):指二进制数的一个位。单位为bit。
2.字节(Byte):由8位二进制单元。单位为B。
3.字(Word):1字=2字节。单位为W。 位、字节、字之间的关系如图2-13所示。图中的LSB表示最低位,MSB表示最高位。
存储器容量常用字节数表示,如64KB,1GB等。每个字节由8位二进制数组成。字或长字是由若干连续字节组成。在单片机中,长字由4个字节组成。 为了让CPU找到操作数,方法是给存储器分配地址,称为编址。于是就有了位、字节地址的概念。计算机中地址也是用数表示的,如同电话号码,请注意地址与数据的区别。2.4.2数的码制
1原码 正数的符号位用0、负数的符号位用1表示,数值用真值的绝对值来表示的二进制数,称为原码,用[X]来表示,设X为整数。 例如115和-115的原码可分别为:
[+115]原=01110011B;[-115]原=11110011B。 值得注意的是,由于[+0]原=00000000B,而[-0]原=10000000B,所以数0的原码不唯一。
8位二进制原码数值范围是:-127~+127;
16位:-32767~+32767。 2.反码 用反码表示的数,是除符号位外,数值位均用反码表示的数。规定:正数的反码与原码相同。所以,正数的反码就是它本身;负数的反码是其绝对值的按位取反数。
[+7]反=00000111B [+127]反=01111111B
表示与以上两个数等值的负数时,先将其对应的正数逐位求反,再加上符号位。如
[-7]反=11111000B [-127]反=10000111B
反码表示法的特点:
(1)反码的“0”也有两种表示方法,即“+0”和“-0”;
(2)N位数的反码可以表示的数的范围为:-(2N-1)~+(2N-1)。这里共2N+1个不同的数,包括两种“0”。8位二进制反码(N=7)能表示数的范围是:-127~+127;而16位二进制反码(N=15)能表示数的范围是:-32767~+32767。
(3)由反码求原码时,正数(符号位为0)后面的数位与原码相同;负数,其数值位逐位求反后,得到原码。 3.补码 (1)模的概念。“模”是指一个计量系统的计数量程。如时钟的模为12。任何有模的计量器,均可化减法为加法运算。设当前时钟指向11点,而准确时间为7点。调整时间的方法有两种:一种是时钟倒拨4小,即11-4=7;也可正拨时针8小时,即11+8=12+7=7。由此可见,在以12为模的系统中,加8和减4的效果是一样的。 即-4=+8(mod12)其表示式为X-4=X+(12-4)。意义是在模12的系统中,-4的补码是+8。 引入补码概念的意义:用补码系统来表示有符号的数,可用加法来完成减法运算。这意味着数字计算机能用相同的电路完成加法和减法运算,节省了硬件。
(2)用补码表示的数,规定:正数的补码与原码相同,负数的补码即为其数值位的反码再加1。或其模与其原码的差。例如,对8有符号二进制数系统中:
[+75]补=01001011 [-75]补=10110100(01001011的反码)+1=10110101或
[-75]补=100000000-01001011=10110101(模=100000000) 特别地:[0]补=[+0]补=[-0]补=00000000。可见,数0的补码表示是唯一的。
(3)在用补码定义求负数补码的过程中,由于做减法不方便,一般该法不用。而采用下述实用方法:先用原码求反码,再在反码数值末位加1,即[X]补=[X]反+1。例如:[-30]补=[|-30|原]反+1=[+30]反+1 =11100001+1=11100010B。 (4)用N位数值位的反码可以表示的数的范围为:-(2N)~+(2N-1)。共2N+1个不同的数,包括0。
8位二进制补码(N=7)能表示的范围为:-128~+127,对应于:[10000000~01111111],若超过此范围,则为溢出。符号位不求反符号位求反
4相反数 求相反数是将一个正数变成其相反的负数或是将一个负数变成其相反的正数。 规则:对于一个有符号的二进制数求其相反数,只要求其补码即可。如下图表示的过程 开始→01001=+9
补码(求相反数)→10111=-9
再求相反数→01001=+9
数的各种码制的表示形式如表2-1所示。
工程背景下的单片机原理及系统设计
2.4.3编码
编码就是用数字表示数字(另一种体制的数字)、字母或文字,这种“数字”叫做代码。 代码的集合构成一种编码体制。计算机中使用编码是用二进制数表示形式多样世界的需要。1.二-十进制编码 如果每个十进制数字的位都用其等值的二进制数表示,所形成的代码称为二-十进制码,简称BCD
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小区物业门卫合同协议书
- 继承原合同协议书范本
- 中国谷氨酸项目创业计划书
- 创业服务中心年终工作总结与计划8
- 建设矿泉水厂项目计划书范文模板
- 真空管太阳集热器行业相关项目可行性研究分析报告
- 2025年自动化生产线成套装备项目评估报告
- 租赁合同墙体拆除协议书
- 拼车合同免责协议书
- 画室合伙创业合同协议书
- 学校青春期性教育系列- 《保护青春期安全》
- 新媒体视频节目制作 课件 学习领域1 新闻短视频制作
- 秦始皇帝陵的物探考古调查863计划秦始皇陵物探考古进展情况的报告
- (完整)中医症候积分量表
- 高效液相色谱质谱联用技术在药物分析中的应用
- 透析患者贫血的护理查房
- 投标文件封面封皮模板
- 双块式轨枕、道床板钢筋运输及线间存放作业指导书
- JG244-2009 混凝土试验用搅拌机
- 珠海市公安局金湾分局等单位招聘公安辅警考试题库2023
- 致大海普希金
评论
0/150
提交评论