欢迎来到天天文库
浏览记录
ID:48153971
大小:395.50 KB
页数:28页
时间:2020-01-17
《桂林电子科技大学 微机原理课件D1.2.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、计算机中常用数制十进制(Decimal)例如,25D或25(后缀可略)二进制(Binary)例如,11010001B十六进制(Hexadecimal)例如,79H,0F6H(字符开头的数前需加“0”)1.2计算机中数和字符的表示n位无符号数可表示的数X的范围是0≤X≤2n-1n=8时,0≤X≤255;n=16时,0≤X≤65535。在计算机中最常用的无符号整数是表示地址的数。1.2.1无符号数表示机器字长的所有位都参与表示数值。D7D6D5D4D3D2D1D00110000197111000012251.机器数与真值计算机中的数是用二进制表示的,数的符号也用二进制表示。通常数的最高
2、位为符号位,其余各位为数值位。D7D6D5D4D3D2D1D0符号位数值位1.2.2有符号数的表示方法这种符号数码化的数称为机器数。机器数所代表的有符号数称为真值。2.原码表示法最高位为符号位,0表示正数,1表示负数,其余各位表示数值,这种表示法称为原码表示法。例1.2若X=+97则[X]原=01100001B若X=-97则[X]原=11100001B原码表示数0有两种表示形式:[+0]原=00000000B[-0]原=10000000B注意:n位原码可表示的数X的范围是:-2n-1+1≤X≤+2n-1-13.补码表示法正数的补码和原码相同;负数的补码可由其原码除符号位保持不变外,
3、其余各位按位取反,再在最末位加1而形成。例1.3假设机器字长为8位,则[+97]原=01100001B则[+97]补=01100001B[-97]原=11100001B则[-97]补=10011111B10011110B+1补码具有以下特点:①[+0]补=[-0]补=00000000B②n位二进制补码所能表示的数值范围为:-2n-1≤X≤+2n-1-1若n=8,则为-128~+127。③对于一个用补码表示的负数[[X]补]补=[X]原例[[-97]补]补=[10011111B]补=11100001B=[-97]原二进制数码无符号数原码反码补码000000000+0+0+000000
4、0011+1+1+1000000102+2+2+2:01111111126+126+126+12601111111127+127+127+12710000000128-0-127-12810000001129-1-126-12710000010130-2-125-126:11111110254-126-1-211111111255-127-0-14.补码的加减运算(1)补码的加法运算规则[X+Y]补=[X]补+[Y]补例用补码进行下列运算:(+33)+(-15)。(2)补码的减法运算规则[X-Y]补=[X]补+[-Y]补已知[Y]补求[-Y]补的过程叫变补或求负。变
5、补规则:全部位(含符号位)按位取反后再加1。解:若X=+33,Y=+15[X]补=00100001B,[Y]补=00001111B[-Y]补=11110001B00100001B[X]补+11110001B[-Y]补自然丢失100010010B[+18]补例1.6用补码进行X-Y运算补码的作用:①引入补码后,将减法运算转化为易于实现的加法运算,且符号位也当作数据相加,从而可简化运算器的结构,提高运算速度。②当字长由8位扩展到16位时,对于用补码表示的数,正数的符号扩展应该在前面补0,而负数的符号扩展应该在前面补1。例:[+46]补=00101110B,[-46]补=11010010
6、B,从8位扩展到16位。[+46]补=0000000000101110B=002EH[-46]补=1111111111010010B=FFD2H③在微型计算机中,有符号数通常都用补码表示,得到的是补码表示的结果。5.有符号数运算时的溢出问题(1)溢出溢出—当两个有符号数进行加减运算时,运算结果超出机器可表示的有符号数的范围,使计算结果出错。只有两个同符号数相加或两个异号数相减时,才有可能产生溢出。(2)溢出判断——双高位判断法及溢出标志(OF)OF=C7C6(MOD28)或OF=C15C14(MOD216)例[+96]补=01100000B+[+65]补=01000001B[-
7、95]补=010100001BOF=C7C6=10=1(有溢出,结果错误)[+65]补=01000001B+[-15]补=11110001B[+50]补=100110010BOF=C7C6=11=0(无溢出,结果正确)[+65]补=01000001B+[-15]补=11110001B[+50]补=100110010BOF=C7C6=11=0(无溢出,结果正确)[+65]补=01000001B+[-15]补=11110001B[+50]补=100110010
此文档下载收益归作者所有