


下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数的机器码表示在计算机中对数据进行运算操作时,符号位如何表示呢?是否也同数值位一道参加运算操作呢?为了妥善的处理好这些问题,就产生了把符号位和数字位一起编码来表示相应的数的各种表示方法,如原码、补码、反码、移码等。为了区别一般书写表小的数和机器中这些编码表小的数,通常将前者称为真值,后者称为机器数或机器码。1. 原码表示法若定点小数的原码形式为X0X1x2Xn,则原码表示的定义是X原=X1X=1+|X|1>x>00>x>-1(2.7)式中X原是机器数,x是真值例如,x=+0.1001,则x原=0.1001x=-0.1001,则x原=1.1001对丁0,原码机器中往往有“
2、+0”、"-0”之分,故有两种形式:+0原=0.000.0-0原=1.000.0若定点整数的原码形式为XOx1x2xn,则原码表示的定义是原=X2nx=2n+|x|2n>x>00>x>-2n(2.8)采用原码表示法简单易懂,但它的最大缺点是加法运算复杂。这是因为,当两数相加时,如果是同号则数值相加;如果是异号,则要进行减法。而在进行减法时还要比较绝对值的大小,然后大数减去小数,最后还要给结果选择符号。为了解决这些矛盾,人们找到了补码表示法。2. 补码表示法我们先以钟表对时为例说明补码的概念。假设现在的标准时间为4点正;而有一只表已经7点了,为了校准时间,可以采
3、用两种方法:一是将时针退7-4=3格;一是将时针向前拨12-3=9格。这两种方法都能对准到4点,由此可以看出,减3和加9是等价的,就是说9是(-3)对12的补码,可以用数学公式表示-3=+9(mod12mod12的意思就是12模数,这个“模”表示被丢掉的数值。上式在数学上称为同余式。上例中其所以7-3和7+9(mod12)等价,原因就是表指针超过12时,将12自动丢掉,最后得到16-12=40从这里可以得到一个启示,就是负数用补码表示时,可以把减法转化为加法。这样,在计算机中实现起来就比较方便。若定点小数补码形式为X0.x1x2xn,则补码表示的定义是X1>X>0(mod2)(2.
4、9)2+x=2-|x|0>x>-1例如,x=+0.1011,则x补=0.1011x=-0.1011,则x补=10+x=10.0000-0.1011=1.0101对丁0,+0补=0补=0.0000(mod2)注意,0的补码表示只有一种形式。采用补码表示法进行减法运算就比原码方便得多了。因为不论数是正还是负机器总是做加法,减法运算可变为加法运算。但根据补码定义,求负数的补码要从2减去|x|。为了用加法代替减法,结果还得在求补码时作一次减法,这显然是不方便的。下面介绍的反码表示法可以解决负数的求补问题。3. 对定点整数,补码表示的定义是2n+1+x=2n+1-|x|0>x>-
5、2n2n>x>0(mod2n+1)(2.10)反码表示法所谓反码,就是二进制的各位数码0变为1,1变为0。也就是说,若Xi=1,则反码为xi=0;若xi=0,贝U反码xi=1。数值上面的一横表示反码的意思。在计算机中用触发器寄存数码,若触发器Q端输出表示原码,则其Q端输出就是反码。由此可知,反码是容易得到的。对定点小数,反码表示的定义为X1>X>0X反=(2.11)I(2-2)+x0ax>-1其中n代表数的位数。在一些文献中,这种以2为基数的反码乂称为1的补码。一般情况下,对丁正数x=+0.x1x2xn,贝UX反=0.x1x2xn对丁负数X=0.x1x2xn,则有
6、x反=1.x1x2-Xn对丁0,有+0反和0反之分:+0反=0.00.0-0反=1.11.1我们比较反码与补码的公式-一一一nx反=(22)+xx补=2+x可得到X补=X反+2n(2.12)这就是通过反码求补码的重要公式。这个公式告诉我们,若要一个负数变补码,其方法是符号位置1,其余各位0变1,1变0,然后在最末位(2-n)上加1。对定点整数,反码表示的定义为反=X(2n+1-1)+x2n>x>00>x>-2n(2.13)4. 移码表示法移码通常用丁表示浮点数的阶码。由丁阶码是个n位的整数,所以假定定点整数移码形式为x0x1x2xn时,对定点整数,移码的定义是x移=2n
7、+x2n>xA2n(2.14)若阶码数值部分为5位,以x表示真值,则x移=25+x25>x>例如,当正数x=+10101时,x移=1,10101;当负数x=10101时,x移=25+x=2510101=0,01011。移码中的逗号不是小数点,而是表示左边一位是符号位显然,移码中符号位x0表示的规律与原码、补码、反码相反。小结:上面的数据四种机器表示法中,移码表示法主要用丁表示浮点数的阶码。由丁补码表示对加减法运算十分方便,因此目前机器中广泛采用补码表示法。在这类机器中,数用补码表示,补码存储,补码运算。也有些机器,数用原码进行存储和传送,运算时改用补码。还有些机器在做加减法时
8、用补码运算,在做乘除法时用原码运算。例3以定点整数为例,用数轴形式说明原码、反码、补码表示范围和可能的数码组合情况。解:原码、反码、补码表示分别示丁下图。与原码、反码不同,在补码表示中“0只有一种形式,且用补码表示负数时范围可到一2n。图例4将十进制真值(127,1,0,+1,+127)列表表示成二进制数及原码、反码、补码、移码值。解:二进制真值x及其诸码值列丁下表,其中0在x原x反中有两种表示。由表中数据可知,补码值与移码值差别仅在丁符号位不同。图例5设机器字长16位,定点表示,尾数15位,数符1位,问:(1) 定点原码整数表示时,最大正数是多少?最小负数是多少?定点原码小数表示时,最大正数
9、是多少?最小负数是多少?;解:(1)定点原码整数表小最大正数值=(2151)10=(+32767)10111111111111111最小负数值=-(215-1)10=(-32767)10111111111111111(2)定点原码小数表小最大正数值=(1215)10=(+0.111.11)2最小负数值=一(12一5)10=(-0.111.11)2例6假设由S,EM三个域组成的一个32位二进制字所表示的非零规格化浮点数x,真值表示为:x=(1)sx(1.M)X2E128问:它所表示的规格化的最大正数、最小正数、最大负数、最小负数是多少?解:(1)最大正数01111111100000000011111111111111111111111x=1+(1-2一23
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度远程办公就业补充协议
- 二零二五年度度假村租赁合同与房东签订
- 二零二五年度水稻机插秧技术培训与市场推广合同
- 二零二五年度劳动合同解除争议解决与法律援助合同
- 2025年度林地经营权租赁与生态保护补偿机制合同
- 二零二五年度房产赠与更名及产权转移合同
- 二零二五年度房地产融资居间代理协议
- 河北省劳动合同2025年度管理创新发展与应用合同
- 二零二五年度人力资源居间招聘合同大全
- 二零二五年度地下水文监测打井承包服务协议
- 激光雷达行业市场规模分析
- 高血压性心脏病病例讨论
- 规划院所长述职报告
- 脑卒中后吞咽障碍患者进食护理-护理团标
- 销售人员商务礼仪培训通用课件
- 全国各省(直辖市、自治区)市(自治州、地区)县(县级市)区名称一览表
- 大学美育导引 课件 第五章 体验人生在世-戏剧
- 大学美育导引 课件 第六章 沉浸光影世界-电影
- 化学品危险物质替代技术
- 医院收费价格注意培训课件
- 临港产业基地污水处理厂提标改造工程设备及安装工程招投标书范本
评论
0/150
提交评论