《计算机接口技术及应用》课件-1.8有符号二进制数的补码_第1页
《计算机接口技术及应用》课件-1.8有符号二进制数的补码_第2页
《计算机接口技术及应用》课件-1.8有符号二进制数的补码_第3页
《计算机接口技术及应用》课件-1.8有符号二进制数的补码_第4页
《计算机接口技术及应用》课件-1.8有符号二进制数的补码_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

微机原理及应用第一章认识二进制第八讲有符号二进制数的补码下面我们来学习有符号二进制数的补码,补码的运算规则是对于一个机器数x如果x是大于0的,那么它的补码就等于它的反码等于它的源码,有符号二进制数的补码若X>0,则[X]补=[X]反=[X]原如果x是小于0的,那么它的补码等于它的反码加一,有符号二进制数的补码若X>0,则[X]补=[X]反=[X]原若X<0,则[X]补=[X]反+1举例说明x等于负的52,那么它的机器码是负的0110100,它的源码就是把它的符号位用1来表示,其他的位保持真值不变,它的反码就是保持源码的符号位不变,其他的位按位取反و补码是在反码的基础上再加一,所以它的补码就是11001100例题X=–52=–0110100[X]原=10110100[X]反=11001011[X]补=[X]反+1=11001100符号位不变真值不变符号位不变按位取反补码在反码基础上再加一补码的第一个优点是它可以将减法化成加法来计算,例题X=–52=–0110100[X]原=10110100[X]反=11001011[X]补=[X]反+1=11001100优点:减法化成加法算还记得我们在前面讲计算机中的运算电路的时候,我们说计算机中没有减法电路,而是直接用加法电路来代替,正因为补码的这一特性,我们才能用加法电路实现减法运算通过补码,可将减法运算转换为加法运算例题通过补码,可将减法运算转换为加法运算下面来看一下补码是如何将减法运算转换成加法运算的,首先,我们有以下的运算规则,x加y的补码等于x的补码加上y的补码,即:[X+Y]补=[X]补+[Y]补例题x减y的补码等于x加上负y的补码,也就是说我们只要计算出y的相反数的补码,就可以跟x的补马直接相加,得到的就是x-y的结果,在运算的时候一定要注意要保持符号位对齐,[X-Y]补=[X+(-Y)]补=[X]补+[-Y]补通过补码,可将减法运算转换为加法运算即:[X+Y]补=[X]补+[Y]补算出y的相反数补码,可跟x的补马相加运算要保持符号位对齐例题X=-0110100,Y=+1110100,求X+Y=?举例说明,我们来算负的0110100和正的1110100的和,这里x是负数y是正数,负数:X正数:Y例题X=-0110100,Y=+1110100,求X+Y=?举例说明,我们来算负的0110100和正的1110100的和,这里x是负数y是正数,那我们首先要将x的补码计算出来,因为只有补码和补码才能够直接进行运算,负数:X只有补码和补码才能进行计算例题x的源码就是将它的符号位变成1,其他位保持不变,X=-0110100,Y=+1110100,求X+Y=?[X]原=10110100符号位变1真值不变例题x的补码就是在x的反码的基础上加1,结果就是11001100y的补码等于它的源码,那就等于01110100X=-0110100,Y=+1110100,求X+Y=?[X]原=10110100[X]补=[X]反+1=11001100[Y]补=[Y]原

=01110100例题x加y的补码等于x的补码加上y的补码,x的补码是11001100,y的补码是01110100X=-0110100,Y=+1110100,求X+Y=?[X]原=10110100[X]补=[X]反+1=11001100[Y]补=[Y]原=01110100[X+Y]补=[X]补+[Y]补[Y]补:

01110100[X]补:11001100例题他们的和是01000000这就是x+y的结果,我们可以把它转化成10进制数来验证一下这个结果是否正确X=-0110100,Y=+1110100,求X+Y=?[X]原=10110100[X]补=[X]反+1=11001100[X+Y]补=[X]补+[Y]补[X]补:11001100[Y]补:

01110100和:01000000[Y]补=[Y]原=01110100例题x补码:11001100y补码:

01110100和:01000000x的十进制数等于负的52,y的十进制数等于正的116,那么x加y的结果应该等于正的64,X=-0110100,Y=+1110100,求X+Y=?[X]原=10110100[X]补=[X]反+1=11001100[Y]补=[Y]原

=01110100[X+Y]补=[X]补+[Y]补x十进制数:52y十进制数:116和:64我们刚刚计算出的1后边六个零的结果刚好等于64,所以我们可以看到补码是直接可以进行运算的0的补码[+0]补=[+0]原=00000000[-0]补=[-0]反+1=11111111+1=100000000例题再来看补马的第二个优点,他对零的表示是唯一的,我们来看一下,+0,由于它是正数,他的补码就跟到源码是一样的,就是八个零,0的补码[+0]补=[+0]原=00000000[-0]补=[-0]反+1=11111111+1=100000000例题正数0的补码是唯一的再来看一下-0,由于它是负数,他的补码等于反码加一,-0的反码大家还记得吗?就是八个一0的补码[+0]补=[+0]原=00000000[-0]补=[-0]反+1=11111111+1=100000000例题负数补码对0表示是唯一8个1再加一的话就等于全0,然后还有一个进位,这个进位位表示溢出,我们在8个比特中看不到它,它已经被舍掉了,所以+0和-0的补码是相同的,也就是说,补码对0的表示是唯一0的补码[+0]补=[+0]原=00000000[-0]补=[-0]反+1=11111111+1=100000000例题进位舍掉+0和-0的补码相同正因为补码对0的表示是唯一的,因此补码解决了源码和反码存在的最大的一个问题

温馨提示

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

评论

0/150

提交评论