单片微型计算机C第3讲(机械)_第1页
单片微型计算机C第3讲(机械)_第2页
单片微型计算机C第3讲(机械)_第3页
单片微型计算机C第3讲(机械)_第4页
单片微型计算机C第3讲(机械)_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

上节内容回顾数制及其转换机器码的概念机器码的分类及求法练习给定X=-38,Y=+87,分别用8位机器数的原码和反码表示(含1位符号位,数据位为7位,结果用十六进制数表示)。并完成[X]反+[Y]反的操作。第3讲教学目的和要求【教学目标】通过讲述计算机中数据的表示方法,掌握单片机中常见数制的表示和转换方法;了解带符号数在计算机中的表示方法,以及为保证数据可靠性的编码方法。【教学重点】①数制之间的转换方法;②有符号数的加减法运算;【教学难点】有符号数二进制数据的表示与运算。第二章数制③补码表示法【补码,two‘scomplement】机器数的最高位为符号位,0表示正数,1表示负数。若为正数,数值以绝对值的形式紧跟其后;若为负数,则在反码的基础上+1。③补码表示法【举例】①给定X=+1011001,求X的补码。

解:X为正数,故[X]补=01011001②给定Y=-1100101,求Y的补码。解:Y为负数,故[Y]补=100110110的补码是多少呢?[+0]补=000……0[-0]补=000……00的补码具有唯一形式补码加减法【补码加减法步骤】用补码表示的两数进行加法运算,结果仍为补码;

[X+Y]补=[X]补+[Y]补

[X-Y]补=[X]补+[-Y]补

;④符号位与数值位一起参与运算。补码加减法【举例】①给定X=-1010,Y=+0101,求X+Y。

解:[X+Y]补=[X]补+[Y]补=10110+00101=11011……-0101……(-5)10②给定X=-1010,Y=0101,求X-Y。解:[X-Y]补=[X]补+[-Y]补=10110+11011=10001……-1111……(-15)10原、反、补码间变换①若为正数,则有[X]原=[X]反=[X]补。②若为负数,则有:符号位保持不变;原码转换成反码,数值位逐位取反;反码转换成补码,数值位+1;原码与补码间转换,取反+1。已知[x]原=10100101,则[x]补=11011011举例10110111对于负数,将介于符号位与最右端的1之间数取反即可完成原码与补码之间的转换原反补码表示的范围不同码制之间对照无符号数真值原码反码补码00000000000000000000000001000000010000000100000001……………………126011111100111111001111110127011111110111111101111111-0100000001111111100000000-1100000011111111011111111……………………-127111111111000000010000001-128————100000002.4

几种常见的编码在计算机中,用纯二进制序列表示自然界中的数据时,可能存在的问题:①用二进制表示一个数据,长度超出容忍的范围,例如(1026)10=(10000000010)2,不方便记忆和转换。②二进制序列在传输过程中,可能受干扰出错,能否降低出错的概率?③如何自动对出错数据进行检测和修正。④字符在计算机中如何表示2.4.1

BCD码BCD码:用4位二进制代码对十进制数字符号进行编码,简称为二–十进制代码,或称BCD(BinaryCodedDecimal)码。常用的BCD码有8421码、余3码等。8421码8421码:是用4位二进制码表示一位十进制字符的一种有权码,4位二进制码从高位至低位的权依次为23、22、21、20,即为8、4、2、1,故称为8421BCD码,简称8421码。从上表可知按8421码编码的0~9与用4位二进制数表示的0~9完全一样。所以,8421码是一种人机联系时广泛使用的中间形式。十进制01234567898421码00000001001000110100010101100111100010011010、1011、1100、1101、1110、1111为非法编码。8421码8421码与二进制数表示数据的区别分别用8421码和二进制来表示十进制数据28【例】(28)10=(11100)B=(00101000)8421码新的问题出现了8421码的加减法BCD运算6+7=130110+01111101修正+0110

10011000解决方法余三码可以解决运算过程中的问题当两个1位BCD相加之和小于(1001)2即(9)10时,无需修正;相加之和大于9时,需要进行加6修正且向高位进位。余三码余三码:由8421码加上0011形成的一种无权码,由于它的每个字符编码比相应的8421码多3,故称为余三码。是BCD码的一种。十进制0123456789余三码00110100010101100111100010011010101111000000、0001、0010、1101、1110、1111为非法编码。【例】(256)10=(010110001001)余3码

(1000100110011011)余3码

=(5668)10

余三码余三码的运算两个余三码表示的十进制数字相加时,能产生正确进位信号,但对“和”必须修正。修正的方法是:如果有进位,则结果加3;如果无进位,则结果减3。

2.4.2

ASCII码ASCII码:AmericanStandardCodeforInformationInterchange,(美国标准信息交换代码)是基于拉丁字母的一套计算机编码系统,主要用于显示现代英语和其他西欧语言。是现今最通用的单字节编码系统。2.4.3

可靠性编码作用:提高系统的可靠性。代码在形成和传送过程中都可能发生的错误。为了减少或者发现这种错误,形成了各种编码方法。介绍两种常用的可靠性编码。

格雷码奇偶校验码格雷码格雷(Gray)码特点:任意两个相邻的数,其格雷码仅有一位不同。作用:避免代码形成或者变换过程中产生的错误。数据格雷码数据格雷码00000000100011000001000110011101001000111010111100110010101111100100011011001010010101111101101101100101111010010111010011111000四位二进制数的格雷码格雷码ABCD左图中,传输的四位数据在7跳变到8时,相应的二进制数据从0111→1000,对应到每条数据线上均会发生电平的反转,可能造成干扰。格雷码的设计原则即是保证相邻数据中仅有1位不同。由二进制转换成格雷码的方法,从二进制最低位开始,所有相邻两位异或,最高位保留,得到的即是格雷码。练习求二进制数据011100110101B对应的格雷码。数据校验码

解决办法采用可靠器件;提高计算机抗干扰能力;采用更好的编码方式。采用数据校验码发现并纠正错误。无法完全避免发送数据校验码产生电路校验电路接收数据发送端接收端传输途径数据校验码原理现有4位二进制数据。正常情况下可以表示16个数据,且均为有效编码。若错一位或多位,会转换成另外一个正确数据。增加校验码的情况下datadatadatadata0000010010001100000101011001110100100110101011100011011110111111采用奇校验方式。最高位为校验码,后三位为数据位,四位数据中保证数字1的个数为奇数个。上表中红色字即为非法编码。数据校验码定义【数据校验码】在数据的特定位置插入1位或多位的二进制数据,起到发现错误和纠正错误作用的编码。常见的数据校验码包括:奇偶校验码海明码CRC冗余校验码奇偶校验码奇校验:整个传送数据(数据+校验码)中1的个数为奇数个;偶校验:整个传送数据(数据+校验码)中1的个数为偶数个。有效信息位XC奇偶校验位n位1位数据奇校验偶校验10101011101010101010101111111101111111111111110000000100000000000000011010110110101111101011练习对给定的数据,当计算机采用奇校验和偶校验时,得到的带校验位的是多少?数据00110111010100110011000110012.5二进制运算中的一些问题运算的结果超出表示范围怎么办如何检测这种情况什么叫移位加减法运算的溢出处理当运算结果超出机器数表示的范围时,称为溢出。负+负,负-正,正+正,正-负可能产生溢出定点整数补码表示的范围0+2n-1-2n数轴正溢出负溢出加减法运算的溢出处理补码运算举例1+7=800001+0011101000无溢出12+7=1901100+0011110011正溢出③(-9)+(-5)=-1410111+11011110010无溢出④(-12)+(-7)=-1910100+11001101101负溢出最简单判溢出方法:利用双符号判断在补码表示时,用相同的两个符号位来表示符号。运算完毕后,如果两符号位相等,运算结果正确;若不相等,则发生溢出。-9-5=-14110111+111011111001012+7=19001100+000111010011①fs1=fs2=1,未溢出②fs1=1,fs2=0,溢出溢出条件V=fs1⊕fs2定点数的移位运算移位情况移位结果比较左移1位145145=14.5×101左移2位14501450=14.5×102右移1位1.451.45=14.5×10-1右移2位0.1450.145=14.5×10-2【移位】定点数小数点保持不变,数值整体向左或向右移动若干位;【例子】对于十进制数据14.5【结论】N进制数据M,左移n位,结果K=M×NnN进制数据M,右移n位,结果K=M×N-n定点数的移位运算【左移】某二进制数左移,得到某数的2倍;【右移】某二进制数右移,得到某数的1/2倍。以原码为例,设[X]原=00110=+6,[Y]原=10100=-4,求其分别左移和右移后的结果。①X左移1位后01100=+12,右移1位后00011=+3②Y左移1位后11000=-8,右移

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论