您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > 2.计算机组成原理第2章 计算机中信息的表示与运算(5)
人才是培养出来的本章内容学习目标§2.1数据的表示§2.2定点数的运算§2.3浮点数的运算第2章---计算机中信息的表示与运算§2.5字符的表示§2.4面向错误检测与纠错的数据编码§2.6面向存储与传输的数据编码人才是培养出来的思考如下几个问题:问题1--如何表示“正/负”?思考如下几个问题:问题2--如何表示“小数点”?√第2章计算机中信息的表示与运算---2.1数据的表示用“0”表示“+”用“1”表示“–”√不表示!默认小数点在数值的最前方或者最后方。这样得到的数叫定点数(Fixedpointnumber)小数点被默认位于数值前部的叫定点小数小数点被默认位于数值后部的叫定点整数。人才是培养出来的真值:真正的数值,即带“+”、“-”号的数。定义即人类日常数学计算中所用到的数字表示形式:+7、-0.85、+101010010、-0.1010011等机器数:将符号数字化之后的数。用于存储在计算机中的数;当然,这些数都是二进制形式思考例如(人类的)真值机器数+0.1011+1100–1100–0.101101011小数点的位置11011小数点的位置01100小数点的位置11100小数点的位置约定:最高位MSB为符号位人才是培养出来的如何将这些真值连同符号位在计算机中表示呢?数值部分符号位第2章计算机中信息的表示与运算---2.1数据的表示一种新的编码(保证编码后的数可以进行高效的各种运算)思考依据编码方案不同,机器数分为:①原码②补码③反码④移码人才是培养出来的第2章计算机中信息的表示与运算---2.1数据的表示2.1.1定点数的表示0.定点小数与定点整数若默认小数点在符号位与数值最高位之间,则计算机实现的是定点小数;若默认小数点在数值最低位之后,则计算机实现的是定点整数。1.原码(符号-绝对值)表示法x1>x≥0[x]原=1–x0≥x>1X:真值[x]原:机器数的原码表示形式其中①公式---定点小数[x]原=0,x2n>x≥02nx0≥x>2nx为真值n为整数的位数[x]原为机器数的原码表示形式其中①公式---定点整数人才是培养出来的③规律若X=+0.x1x2……xn则[x]原=0.x1x2……xn若X=-0.x1x2……xn则[x]原=1.x1x2……xn若x=0则[x]原=??????X=+1011010B,[X]原=0,1011010B;Y=–1011010B,[Y]原=1,1011010B;Z=+0.1101010B,[Z]原=0.1101010B;K=–0.1101010B,[K]原=1.1101010B。④练习书写时,在符号位与数值最高位之间加“.”表示数据是定点小数②示例X=+0.1001,则[x]原=X=-0.1001,则[x]原=0.10011+0.1001=1.1001书写时,在符号位与数值最高位之间加“,”表示数据是定点整数计算机并不存储“,”/“.”人才是培养出来的【例2-1】设机器字长为8位,X=–0101010B,Y=+1010101B,求[X]原和[Y]原=?第2章计算机中信息的表示与运算---2.1数据的表示2.1.1定点数的表示习题解:对于零(0)而言,其原码中的符号位取0、取1都可以,所以[X]原=10000000B或[X]原=00000000B[+0]原≠[0]原结论:零(0)的原码表示有两个:正零和负零+0和-0是两个不同的数!解:[X]原=1,0101010B,[Y]原=0,1010101B【例2-2】设机器字长为8位,X=0,求[X]原=?人才是培养出来的第2章计算机中信息的表示与运算---2.1数据的表示2.1.1定点数的表示习题【例2-3】已知[x]原=1.0011求x解:x=1[x]原=11.0011=0.0011【例2-4】已知[x]原=1.0101求x【例2-5】已知[x]原=1,1010求x【例2-6】已知[x]原=1,1100求xx=1[x]原=11.0101=0.0101解:x=24[x]原=100001,1010=1010解:x=24[x]原=100001,1100=1100解:人才是培养出来的(2n–1–1)~+(2n–1–1)第2章计算机中信息的表示与运算---2.1数据的表示2.1.1定点数的表示表示范围(1)定点整数原码形式的n位定点整数的表示范围是:①8位定点整数的表示范围是:②16位定点整数的表示范围是:(2)定点小数原码表示的n位定点小数的表示范围是:–(1–2–(n–1))~+(1–2–(n–1))(27–1)~+(27–1),即:–127~+127;–(215–1)~+(215–1),即:–32767~+32767人才是培养出来的原码简单明了,易于和真值转换,但是基于原码实现的加、减运算比较复杂,即在执行的加、减运算时,不能直接运算。需要先判断两个操作数的符号以及两个操作数绝对值的相对大小,然后再执行所需要的运算。第2章计算机中信息的表示与运算---2.1数据的表示2.1.1定点数的表示为了扩大表数范围,在数据都是正数的情况下,可以把符号位省掉。这样n位定点整数的表示范围是:0~+(2n–1)①8位定点整数的表示范围是:0~+(28–1),即:0~+255;②16位定点整数的表示范围是:0~+(216–1),即:0~+65535可见,定点数又分为带符号数和无符号数。原码和后面介绍的补码、反码都是针对带符号数的。原码的不足表示范围人才是培养出来的第2章计算机中信息的表示与运算---2.1数据的表示2.1.1定点数的表示命令操作A的符号B的符号实际操作结果符号|A||B||A||B|加正正加正正正负减正负负正减负正负负加负负减正正减正负正负加正正负正加负负负负减负正人才是培养出来的第2章计算机中信息的表示与运算---2.1数据的表示2.1.1定点数的表示减法运算加法运算能否找到一个与负数相等价的正数呢??思考转换成逆时针旋转格顺时针旋转格方法1方法2欲表示3点钟可见:-3+9相互等价我们称:+9是–3以12为模的补数记作:-3≡+9(mod12)39人才是培养出来的第2章计算机中信息的表示与运算---2.1数据的表示2.1.1定点数的表示类似4≡+8(mod12)5≡+7(mod12)1.两个互为补数的数,它们绝对值之和即为模数。2.一个负数加上“模”即得该负数的补数。3.正数的补数即为其本身。结论记作-1011≡+0101(mod24)同理-011≡+101(mod23)-0.1001≡+1.0111(mod2)二进制数-1011可用+0101代替举例以16为模时,人才是培养出来的第2章计算机中信息的表示与运算---2.1数据的表示2.1.1定点数的表示---补码[x]补=x1>x≥02+x0>x≥1(mod2)x为真值[x]补为机器数的补码表示形式其中[x]补=0,x2n>x≥02n+1+x0>x≥2n(mod2n+1)x为真值n为整数的位数[x]补为机器数的补码形式其中①公式---定点小数①公式---定点整数人才是培养出来的习题第2章计算机中信息的表示与运算---2.1数据的表示2.1.1定点数的表示---补码x=+0.1110[x]补=0.1110x=0.11000001.0100000[x]补=2+(0.1100000)=10.00000000.1100000用小数点将符号位和数值位隔开【例2-7】已知x为定点小数,求[x]补人才是培养出来的习题第2章计算机中信息的表示与运算---2.1数据的表示2.1.1定点数的表示---补码【例2-8】已知x为定点整数,求[x]补x=+1010[x]补=27+1+(1011000)=1000000001011000[x]补=0,1010x=10110001,0101000用逗号将符号位和数值位隔开人才是培养出来的第2章计算机中信息的表示与运算---2.1数据的表示习题【例2-9】已知x=0.1100,则[x]补=2.1.1定点数的表示---补码【例2-10】已知x=-0.1100,则[x]补=【例2-11】已知[x]补=0.1010则x=【例2-12】已知[x]补=1.1010则x=【例2-13】[+0.0000]补=【例2-14】[-0.0000]补=2-0.1100=1.01000.11000.1010-0.01100.000010.0000-0.0000=10.0000(mod2)=0.0000人才是培养出来的第2章计算机中信息的表示与运算---2.1数据的表示习题【例2-15】已知x=+1001,则[x]补=2.1.1定点数的表示---补码【例2-16】已知x=-1001,则[x]补=0,100124+1-1001=100000-10010101111,0111【例2-17】在机器字长为8位时,[+1]补=0,0000001B,[+127]补=0,1111111B,[–1]补=28–1=1,1111111B,[–127]补=28–127=1,0000001B,[+0]补=00000000B,[–0]补=28–0=00000000B人才是培养出来的那么,原码中用于表示负零的那个码点10000000B,在定点整数补码中被用来表示–2n–1,例如–128(n=8);在定点小数补码中被用来表示-1。第2章计算机中信息的表示与运算---2.1数据的表示【例2-17】在机器字长为8位时,[+0]补=00000000B,[–0]补=28–0=00000000B在补码中,零只有1种形式。2.1.1定点数的表示---补码人才是培养出来的第2章计算机中信息的表示与运算---2.1数据的表示(3)求补码的快捷方式0.x1x2…xn0.x1x2…xn1.x1x2…xn1.x1x2…xn+0.00…1①若x=+0.x1x2…xn,则【x】原=【x】补=若x=-0.x1x2…xn,则【x】原=【x】补=0,x1x2…xn0,x1x2…xn②若x=+x1x2…xn,则【x】原=【x】补=1,x1x2…xn1,x1x2…xn+0.00…1符号位除外,各位取反,末尾加1符号位除外,各位取反,末尾加1符号位在内,各位取反,末尾加1符号位在内,各位取反,末尾加1原码补码【x】补【-x】补③负数负数负数负数若x=-x1x2…xn,则【x】原=【x】补=各位取反,末位加1各位取反,末位加1人才是培养出来的习题【例2-18】设机器字长为8位,X=–46,求[X]补=?解:[X]原=10101110B。除了符号位外,对[X]原每位取反得到11010001B,在最低位加1得到11010010B。所以[X]补=11010010B【例2-19】设机器字长为16位,Y=–116,求[Y]补=?解:[Y]原=1000000001110100B,则[Y]补=1111111110001100B=FF8CH十六进制形式第2章计算机中信息的表示与运算---2.1数据的表示2.1.1定点数的表示---补码观察上面两道例题的结果,一个负数的原码从它的低位算起,遇到第一个“1”时,原码与补码是相同的。超过这个“1”直至符号位之间的那段数位,原码与补码是相反的。现象人才是培养出来的①8位定点整数的表示范围是:②16位定点整数的表示范围是:第2章计算机中信息的表示与运算---2.1数据的表示2.1.1定点数的表示---补码(1)定点整数补码形式的n位定点整数的表示范围是:2n–1~+(2n–1–1)27~+(27–1),即:–128~+127;–215~+(215–1),即:–32768~+32767(2)定点小数补码表示的n位定点小数的表示范围是:–1~+(1–2–(n–1))表示范围人才是培养出来的[y]补=1.y1y2yn+2-n…2n-12-n1-2-n2-2-n苦练基本功继续……则[—y]补=_____________111….............10.00…............10.11…............11.111….….…...1====已知y=0.y1y
本文标题:2.计算机组成原理第2章 计算机中信息的表示与运算(5)
链接地址:https://www.777doc.com/doc-3221203 .html