第1-2讲 数制、编码、运算_第1页
第1-2讲 数制、编码、运算_第2页
第1-2讲 数制、编码、运算_第3页
第1-2讲 数制、编码、运算_第4页
第1-2讲 数制、编码、运算_第5页
已阅读5页,还剩68页未读 继续免费阅读

下载本文档

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

文档简介

第1章基础知识本章主要内容§1.1概述§1.2微机中的数制和数的表示

§1.3微机中常见的编码§1.4二进制数的运算及其电路

数值所使用的数码的个数称为基;数值每一位所具有的值称为权。1.2微机中的数制和数的表示§1.2.1数制的基与权十进制的基为“10”,即它使用的数码为0,1,2,3,4,5,6,7,8,9共有10个。十进制各位的权是以10为底的幂,用“D”表示,如十进制数523791D二进制的基为“2”,即其使用的数码为0、1,共两个。二进制各位的权是以2为底的幂,用“B”表示,如二进制数110111B八进制的基为“8”,即其数码共有8个:0,1,2,3,4,5,6,7。八进制的权为以8为底的幂

十六进制的基为“16”,即其数码共有16个:0,1,2,3,4,5,6,7,9,A,B,C,D,E,F。十六进制的权为以16为底的幂1.2.1数制的权与基1.十进制数转换成二进制数的方法§1.2.2数制的转换方法思路:用2除该十进制数可得商数及余数,则此余数为二进制代码的最小有效位(LSB)的值。再用2除该商数,又得商数及余数,则此余数为LSB左邻的二进制数代码。用同样的方法继续用2除下去,就可得到该十进制数的二进制代码1.2微机中的数制和数的表示如果十进制小数要转换成二进制小数,则要采取“乘2取整法”(乘以基数正序取整)。1.2.2数制的转换方法一个十进制的小数乘以2之后可能有进位使整数位为1(当该小数大于0.5时),也可能没有进位,其整数位仍为0(当该小数小于0.5时)。这些整数位的结果即为二进制的小数位结果。1.2.2数制的转换方法2.二进制数转换成十进制数的方法思路:由二进制数各位的权乘以各位的数(0或1)再加起来就得到十进制数

1.2.2数制的转换方法二进制数小数各位的权是2-1、2-2…注意:(1)一个二进制数可以准确地转换为十进制数,而一个带小数的十进制数不一定能够准确地用二进制数来表示。(2)带小数的十进制数在转换为二进制数时,以小数点为界,整数和小数要分别转换。1.2.2数制的转换方法1.无符号数的表示法1.2微机中的数制和数的表示§1.2.3二进制数的表示一个二进制数N可以表示为如下形式:其中,n为二进制数N整数部分的位数;m为二进制数N小数部分的位数;Bi为二进制数字符号0或1。例如:1101.1B=1×23+1×22+0×20+1×2-1。2.带符号数的表示法1.2.3二进制数的表示(1)原码数x的原码记作[x]原,如机器字长为n,则原码的定义如下:

例如,当n=8时,[+1]原=00000001B,[+127]原=01111111B[-1]原=10000001B,[-127]原=11111111B当n=16时,[+1]原=0000000000000001B,[+127]原=0000000001111111B[-1]原=1000000000000001B,[-127]原=1000000001111111B1.2.3二进制数的表示注意:原码表示法中,最高位为符号位,正数为0,负数为1。其余n-1位表示数的绝对值。原码表示数的范围是~。8位二进制原码表示数的范围是-127~+127,16位二进制原码表示数的范围是-32767~+32767。

(2)反码数x的反码记作[x]反,如机器字长为n,反码定义如下:1.2.3二进制数的表示例如,当n=8时,[+1]反=00000001B,[+127]反=01111111B[-1]反=11111110B,[-127]反=10000000B注意:最高位仍为符号位,正数为0,负数为1。反码表示数的范围是~。8位二进制数反码表示数的范围是-127~+127,16位二进制数反码表示数的范围是-32767~+32767。

(3)补码数x的补码记作[x]补,当机器字长为n时,补码定义如下:1.2.3二进制数的表示例如,当n=8时,[+1]补=00000001B,[+127]补=01111111B[-1]补=28-|-1|=11111111B,[-127]补=28-|-127|=10000001B注意:最高位仍为符号位,正数为0,负数为1。补码表示数的范围是~。8位二进制数补码表示数的范围是-127~+127,16位二进制数补码表示数的范围是-32767~+32767。

3.真值与补码之间的转换1.2.3二进制数的表示(1)真值转换为补码根据补码的定义可以完成真值到补码的转换。

(2)补码转换为真值正数补码转换为真值比较简单,由于正数的补码是其本身,因此,正数补码的真值x=[x]补()负数补码与其对应的正数之间存在如下关系:[x]补——————→[-x]补——————→[x]补求补运算求补运算求补运算是将一个二进制数按位求反加1的运算

1.2.3二进制数的表示例1-5求下列数的补码。①设x=+127D,求[x]补。应用十进制数转换为二进制数的原则,可以得出x=01111111B。故[x]补=[+127]补=01111111B。②设x=-127D,求[x]补。对[x]补进行求补运算便可得到[-x]补。因此,[x]补=[-127]补=+1=+1=10000001B。例1-6求以下补码的真值。①设[x]补=01111110B,求x。该补码的最高位为“0”,即符号位为“0”,该补码对应的真值是正数。则x=[x]补=01111110B=+126D。②设[x]补=10000010B,求x。因为该补码的最高位为“1”,即符号位为“1”,该补码对应的真值是负数,其绝对值为:|x|==+1=B+1=01111101B+1=01111110B=+126D则x=-126D。1.2.3二进制数的表示§1.2.4微机中数的表示定点法浮点法定点机:用定点表示的微机(51单片机)定点法表示整数,浮点法表示实数浮点机:用浮点表示的微机(PC机)1.2微机中的数制和数的表示1.定点表示(单片机)纯整数形式

纯小数形式

定点机中通常采用纯整数形式,以8位机为例,用8位二进制数表示一个纯整数,格式如下:

符号Pf为符号位:0—正数,1—负数1.2.4微机中数的表示在微机中,对于带正、负号的数,其符号被数码化了,这种表示数据的形式称为机器数

注:机器数并不是指微机中的数1.2.4微机中数的表示2.浮点表示(必须带小数点)

对于任意一个二进制数N总可以表示为:

N=S×2P其中S是数N的尾数,P是数N的阶码。格式如下:Pf阶码PSf尾数SPf为阶码的符号位,0-正,1-负Sf为尾数的符号位,0-正,1-负1.2.4微机中数的表示111.0101B=1.110101×210B

=0.111010×211B

当阶码P取不同数值时,尾数小数点位置是可以变动的,因此称为浮点法数。为了使微机在运行过程中不丢失有效数字,提高运算精度,一般都采用二进制浮点规格化数,所谓浮点规格化是指1/2<|S|<1;即小数点后面的一位必须为1,小数点前面一位为01.2.4微机中数的表示例:若有二进制数0.0011010B,规格化后的形式为0.11010×2–10B用8位二进制数的格式将其表示为浮点数:注:规格化后尾数超出三位小数部分自动舍去,所以用浮点数表示有可能产生误差1.2.4微机中数的表示设若有m位阶码,n为尾数,则数N的表示范围为:

注:1)规格化后尾数超出三位小数部分自动舍去,所以用浮点数表示有可能产生误差。2)当微机字长确定以后,阶码与尾数所占的位数由操作系统决定。当阶码越长则尾数越短,数的表示范围越宽,但精度低;当阶码越短则尾数越长,数的表示范围越窄,但精度高1.2.4微机中数的表示练习题将下列十进制数用浮点表示法表示:①-3.756②+0.573答案:①00101111②000001001.2.4微机中数的表示微机编码:用规定好的二进制组合表示数据、字符、汉字等信息§1.3.1ASCII码

ASCⅡ码是美国标准信息交换码,有两种版本

问题:对于一些数据、字符、汉字等信息在微机中如何表示?1.3微机的编码96个图形字符10个十进制数字52个英文字符34个其他字符32个控制字符回车符、换行符、退格符设备控制符和信息分隔符等

7位二进制数表示一个字符,早期用于电信行业,后被移植入微机,可表示128个字符1.3.1ASCII码采用8位二进制数表示一个字符的ASCⅡ码,最高位为扩展位,最高位若为0,则为基本ASCⅡ码。最高位为1,则为扩展的ASCⅡ码,一般用来表示键盘上不可显示的功能键编码ASCⅡ码表中:

A~Z

的ASCⅡ编码是41H~5AH

a~z

的ASCⅡ编码是61H~7AH

0~9

的ASCⅡ编码是30H~39H

1.3.1ASCII码在微机中用二进制数表示十进制数的方法很多,常用的有8421BCD码,即用四位二进制数表示一位十进制数,因组成它的4位二进制数码的权为8、4、2、1而得名。(参看8421BCD码表)1.3微机的编码§1.3.2BCD码8421BCD编码表

注:4位二进制数称为一位8421BCD码字1.3.2BCD码BCD码与非BCD码00000B10001B20010B30011B40100B50101B60110B70111B81000B91001BA1010BB1011BC1100BD1101BE1110BF1111B非BCD码冗余码非法码BCD码注:在0~9之间十进制数的BCD码与十六进制是相同的,10以后的称为非BCD码1.3.2BCD码1.压缩BCD码是一个字节中存放两个十进制数字位如:将十进制数8962用压缩BCD码表示 1000100101100010 在主存中存放形式:2.非压缩BCD码是指每个字节中只存放一个十进制数字位如:将十进制数8962用非压缩BCD码表示00001000000010010000011000000010 在主存中存放形式:1.3.2BCD码3.BCD码加法运算BCD加法就是按“逢十进位”的原则进行相加,其和也是一个BCD数。但微机只能进行二进制加法,在相邻BCD码字之间只能“逢十六进位”。导致出现非BCD码。因此需要对结果进行调整,做到“逢十进位”1.3.2BCD码结果仍为BCD码96[34]BCD=00110100B+[62]BCD=01100010B10010110B

34+62=例:1.3.2BCD码例:89+95=184

[89]BCD=10001001B

+[95]BCD=10010101B

100011110B←运算结果的低4位出现非BCD码高4位出现进位,均应做加6调整

结果仍为BCD码进位→

01100110B

+110000100B1.3.2BCD码低位向高位产生进位,高位出现非BCD码均应作加6调整相加结果为无符号数,最高位进位有效进位结果仍为BCD码117例:48+69=[48]BCD=01001000B+[69]BCD=01101001B10110001B100010111B01100110B+1.3.2BCD码

在BCD加法过程中,进制不同导致出现非BCD码或某位向高位产生进位,使运算结果不正确。在这种情况下均应作加6调整,以补上多拿走的6。十进制调整在微机中有专门的调整电路自动完成总结:1.3.2BCD码练习题①[65]BCD+[78]BCD=?②[35]BCD+[82]BCD=?1.3.2BCD码BCD码减法运算与加法运算同理减法运算的调整原则:在运算过程中某位出现借位或非BCD码,相应位作减6调整,减去多借的6。也是有专门的指令来完成的例:58-25=[58]BCD=01011000B[25]BCD=00100101B-00110011B结果仍为BCD码334.BCD码减法运算

1.3.2BCD码例:35-28=←低四位向高四位借位←运算结果的低4位出现非BCD码700001101B[35]BCD=00110101B_

[28]BCD=00101000B

00000111B00000110B_←

个位做减6调整←结果仍为BCD码1.3.2BCD码练习题①[95]BCD-[78]BCD=?②[85]BCD-[27]BCD=?1.3.2BCD码1.二进制数的算术运算

1.4二进制数的运算及其电路§1.4.1

二进制数的运算加法运算规则:0+0=00+1=11+0=11+1=0(进位1)1.4.1二进制数的运算减法运算规则:0-0=01-1=01-0=10-1=1(有借位)乘法运算规则:0×0=1×0=0×1=01×1=1除法运算规则:二进制数的除法是乘法的逆运算“与”运算(AND)1.4.1二进制数的运算2.二进制数的逻辑运算

“或”运算(OR)1.4.1二进制数的运算“非”运算(NOT)“异或”运算(XOR)1.4.1二进制数的运算微机中的运算都是在运算器中运行的,运算器是由加法器构成的,只会做二进制加法运算,一位二进制全加器电路如图所示:FASiAiBiCi+1Ci全加器真值表1.4二进制数的运算及其电路§1.4.2

加法器1.4二进制数的运算及其电路§1.4.3二进制数的加法/减法电路a0a1a2a3a4a5a6a7为被加数/被减数b0b1b2b3b4b5b6b7为加数/减数S0S1S2S3S4S5S6S7为和或差C1C2C3C4C5C6C7C8为加法运算中低位向高位的进位

SUB为加减控制信号1.4.3二进制数的加法/减法电路

当执行减法指令时,SUB=1,图中各异或逻辑门均为反相逻辑门,则Si=ai-bi+ci

=ai+bi+ci,并且FA连同SUB的状态一起做加法运算

当执行加法运算指令时,SUB=0,图中各异或逻辑门均为同相逻辑门,对加数没有任何影响,则Si=ai+bi+ci

结论:微机作减法运算时,其运算过程是:一个数减去另一个数,等于加上另一个数的反码并加1,这个运算过程称为补码运算

1.4.3二进制数的加法/减法电路图中OV是溢出标志位,运算结果有溢出时,OV=1,否则OV=0,溢出的原因是运算结果超出了微机中数的表示范围图中Cy是进位(或借位)的状态标志位,做加法运算时若最高位(FA7)有进位,则Cy=1,否则Cy=0;做减法运算时若FA7位无进位,说明不够减,有借位现象,则Cy=1,否则,Cy=0

Cy=C8⊕SUBOV=C7⊕C81.4.3二进制数的加法/减法电路补码运算

研究表明,微机中的数一律用补码的形式表示的,两个数加法运算时,应将参加运算的数化成补码形式,相加后的结果仍为补码,对于有符号数来说,符号位无须单独处理,符号位可直接参加运算,不影响最终结果[X]补+[Y]补=[X+Y]补1.4.3二进制数的加法/减法电路

正数的补码表示与原码相同;负数的补码表示等于该数的原码取反(反码)加1。理论依据:[X]补=模+X(如何理解?)

举例:假设现在的标准时间是4点整,而一只时钟却指示7点整。如何校准时钟?

①7-3=4②7+9=7+5+4=12(自动丢失)+4=47+9=4(mod12)[-3]补=12+9=9=12-3

[5]补=12+5=58位单片机mod128(28)11111111(127)(100000000)[X]补=2n+X(mod2n)数的补码1.4.3二进制数的加法/减法电路1.4.3二进制数的加法/减法电路例:35+42=[35]补=00100011

+[42]补=00101010

001001101

Cy=0,OV=0,结果为4DH,仍为补码形式。若要显示运算结果,应对运算结果求真值

+77真值就是将补码形式的运算结果用“+”“–”号的形式来表示运算结果的实际数值。一般用十六进制或十进制表示加法运算(SUB=0)1.4.3二进制数的加法/减法电路例:35+(-42)=[35]补=00100011

+[-42]补=11010110

011111001

C8=0,Cy=0,OV=0,说明没有溢出。运算结果为负,若求真值,须对运算结果求补码-71.4.3二进制数的加法/减法电路练习题①已知X=-76,Y=+23,求X+Y=?OV=?Cy=?②已知X=-76,Y=-69,求X+Y=?OV=?Cy=?答案:①X+Y=-53OV=0Cy=0②X+Y=-145(+111)OV=1Cy=11.4.3二进制数的加法/减法电路例:85+78=[85]补=01010101

+[78]补=01001110

010100011

Cy=0,OV=1,说明运算结果出现溢出现象,运算结果超出了微机中对数的表示范围1.4.3二进制数的加法/减法电路若将上述运算“看成”是有符号数的运算,运算结果的最高位可“看作”符号位,结果为负数,由于8位有符号数补码的表示范围为–128~+127,该运算结果显然超出了数的表示范围,OV=1产生了溢出现象,运算结果无意义,应做溢出提示

85+78=溢出1.4.3二进制数的加法/减法电路若将上述运算“看成”是无符号数的运算,运算结果的最高位不再做符号位了,而是数值位(权为128),8位无符号数补码的表示范围为0~255,尽管产生了溢出标志,但运算结果仍有意义,真值为16385+78=1631.4.3二进制数的加法/减法电路微机的补码运算可分为带符号数的补码运算和无符号数的补码运算,但微机并不认识数的属性,运算器在进行加减运算时并不区分操作数是否带有符号,运算过程都是一样的当SUB=0时,直接将两个数相加,当SUB=1时,将减数求补(取反加1),再进行运算。在运算的同时自动设置CY和OV,运算后若是无符号数,通过判断CY确定是否有进位,如果是带符号数,则通过判断OV确定是否溢出1.4.3二进制数的加法/减法电路例:求下列有符号数的补码运算,并求真值76+23=[76]补=01001100+[23]补=00010111

01100011

Cy=0,OV=0+991.4.3二进制数的加法/减法电路35+(-69)=[35]补=00100011+[-69]补=10111011

11011110Cy=0,OV=0-341.4.3二进制数的加法/减法电路76+69=[76]补=01001100+[69]补=01000101

10010001

Cy=0,OV=1,有溢出结果无意义溢出1.4.3二进制数的加法/减法电路76+(-23)=[76]补=01001100+[-23]补=111010

温馨提示

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

评论

0/150

提交评论