补码运算的法则.doc_第1页
补码运算的法则.doc_第2页
补码运算的法则.doc_第3页
补码运算的法则.doc_第4页
全文预览已结束

下载本文档

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

文档简介

补码运算的法则补码运算的法则要在“微机原理”这门课中讲到,在“数字电子技术”课中不作重点,只需一般了解即可。在数字电子技术教科书中,补码部分是用4位或5位2进制数来讲的,所以本文中也多以4、5位二进制数做例子。利用补码运算必须确定运算数的位数,这样才能确定补码的模数。在计算机中,带符号的数的表示方法有3种:原码、补码和移码。本文不讨论移码。一、计算机中数的表示法1. 原码对一个二进制数而言,若用最高位表示数的符号(常以“0”表示正数,“1”表示负数),其余各位表示数的本身,则称为二进制数的原码表示法。例如:设 A = + 1001 , B = - 0101,则A原 = 0 1001,B原 = 1 0101。A原、B原分别是A、B的原码,是符号数值化了的数。符号数值化之前的带符号的数A、B称为是“真值”。2. 补码(1)补码的定义:根据同余的概念X + NK = X ( mod K ) 括号中的部分不参加运算,它表示“K是模”。N是任意整数。该式的含义是,数X与该数加上其模的任意整倍数之和相等。例如钟表的表盘,模为12,不论指针转了几圈,3点总是3点。用定义式表示,即3 + N12 = 3在式中,当N=1时有 X补数 = X + K,X补数 称为是X的补数。当 0 X K时,X补数 = X (正数的补码是其本身)当 - K X 0 时,X补数 = X + K(负数的补码 = X+K = 模|X|)例如表盘 模 = 12当 X = 3 时,3补数 = 3 ,其涵义是表针正着转了3 格;当 X = -3 时,-3补数 = -3+12 = 9 ,其含义就是指针倒着转了3格,就等于正着转了9 格。(因为X 0 X+K = 模|X| )模 = “在限定的位数中可表示的最大数”加1 。在计算机中,一个机器数的字长为n位,它能够表示的最大数为n个“1”,其模为2n。例如4位的机器数中,n = 4,可表示的最大数为1111B(1111B表示是一个二进制数),其模就是 1111B + 1 = 1 0000 = 24。4位二进制数的模是1 0000,即16;而8位二进制数的模是1 0000 0000,即256。再例如十进制的模是 10 ,十二进制的模是12。一个二进制数,若以2n为模(n为二进制数的位数,通常与计算机中计其数的长度一致),它的补码叫做2补码,简称补码。即当 0 X 2 n-2时,X补 = X 当 2 n-1 X 0 时,X补 = 2 n + X =2n - | X | 同理,十进制的补码是10,十二进制的补码是12。再利用钟表的例子:当 X = 3 时,3补 = 3;当 X = -3 时,-3补 = -3+12 = 9 。所以,正数的补码是它本身,负数的补码是负数加上模。在二进制中,4位二进制数的时候,n = 4 ,根据 式 ,-1的补码就是:-1补 = 2 4 + ( - 1 ) = 1 0000B 1 = 1111B 5位二进制数的时候,n = 5 ,根据 式 ,-1的补码就是:-1补 = 2 5 + ( - 1 ) = 1 00000B 1 = 11111B (2)补码的求法 根据定义求:即上述的办法,显然很不方便。 保持符号位不变,数值位求反加1:例如4位二进制数-001,其原码为1001原,则其补码为 1001补 =1110 + 1 = 1111。式中的1110即为1001的反码,注意符号位最高位的1不参加求反。 直接求补:从最低位起,从右至左,到出现第一个1之前(包括第一个1)原码中的数字不变,以后逐位求反,但符号位不变,即可直接得到补码。例1:求补: n = 4 X = - 1 - 1补 = 1 0 0 1原 = 1111最后一位的1不变求反例2: n = 8 X= - 1110 0000 X原 = 11110 0000 X补 = 10010 0000二、补码的运算法则:1. 无论正数还是负数,都是先求补,再相加,其和为补码。如果相加之和是正数,则即为所求之和的原码,但是如果结果是负数,还应再求其补码,方能得到和的原码。运算法则: X 补 Y 补 = XY 补 X 补补 = X 原例1:96-19算法:X Y = X补+ Y补 补X补 = X原 = 0110 0000B Y补 = Y原 = 0001 0011B -Y补 = 1110 1101B 符号位参加运算。X Y = X补+ Y补 补 = 0110 0000B + 1110 1101B 补 = 0100 1101B 补 = 0100 1101BX-Y补 = X-Y原 = 0100 1101B = +77 例2: (-56)-(-17)=(-56)+17 X原 = 1011 1000BX补 = 1100 1000BY原 = 1001 0001B Y补 = 1110 1111B - Y 补 = 0001 0001B (-56)-(-17)=-56补 + 17补 补 = 1100 1000 + 0001 0001 补 = 1101 1001B 补 X-Y原 = X-Y补补 = 1101 1001补 = 1010 0111B = -39 2. 有关0的问题原码中,+0 = - 0 = 0补码中 0000 = 0 1000B = - 8,没有-03. 例 -1 -1根据书上P8的例子,假如是5位机器数。-1

温馨提示

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

评论

0/150

提交评论