计算机组成原理之《补码运算及溢出分析》课程设计.docx
- 文档编号:15194766
- 上传时间:2023-07-02
- 格式:DOCX
- 页数:8
- 大小:17.82KB
计算机组成原理之《补码运算及溢出分析》课程设计.docx
《计算机组成原理之《补码运算及溢出分析》课程设计.docx》由会员分享,可在线阅读,更多相关《计算机组成原理之《补码运算及溢出分析》课程设计.docx(8页珍藏版)》请在冰点文库上搜索。
计算机组成原理之《补码运算及溢出分析》课程设计
课程设计报告
课程设计题目
计算机组成原理之《补码运算及溢出分析》
院(系)信息学院
专业计算机科学技术
姓名
学号
指导教师
2020年9月18日
目录2
1.2.1原码4
1.2.2反码4
1.2.3补码…………………………………………………………………………………………4
二补码的运算5
2.1.补码运算规则5
2.2补码的加法运算5
2.3补码的减法运算6
三.溢出和溢出分析6
3.1溢出的概念6
3.2.判断溢出7
3.2.1双符号位法7
3.2.2单符号位法8
四.总结与心得9
补码运算及溢出分析
一.补码
1.1什么是补码、原码、反码
原码、反码、补码是计算机中对数字的二进制表示方法。
原码:
将最高位作为符号位(0表示正,1表示负),其它数字位代表数值本身的绝对值的数字表示方式。
反码:
如果是正数,则表示方法和原码一样;如果是负数,符号位不变,其余各位取反,则得到这个数字的反码表示形式。
补码:
如果是整数,则表示方法和原码一样;如果是负数,则将数字的反码加上1(相当于将原码数值位取反然后在最低位加1)。
示例:
数值
原码
反码
补码
6
00000110
-6
10000110
11111001
11111010
*示例中均为8-bit的整数。
它的可表示范围包括-128到127,总共256(=28)个整数。
*0的反码、补码都为0
1.2补码、原码、反码的基础概念和计算方法
在探求为何机器要使用补码之前,让我们先了解原码,反码和补码的概念。
对于一个数,计算机要使用一定的编码方式进行存储。
原码,反码,补码是机器存储一个具体数字的编码方式.
1.2.1原码
原码就是符号位加上真值的绝对值,即用第一位表示符号,其余位表示值.比如如果是8位二进制:
[+1]原 =00000001
[-1]原 =10000001
第一位是符号位.因为第一位是符号位,所以8位二进制数的取值范围就是:
[11111111,01111111]
即
[-127,127]
原码是人脑最容易理解和计算的表示方式.
1.2.2反码
反码的表示方法是:
正数的反码是其本身
负数的反码是在其原码的基础上,符号位不变,其余各个位取反.
[+1]=[00000001]原 =[00000001]反
[-1]=[10000001]原 =[11111110]反
可见如果一个反码表示的是负数,人脑无法直观的看出来它的数值.通常要将其转换成原码再计算.
1.2.3补码
补码的表示方法是:
正数的补码就是其本身
负数的补码是在其原码的基础上,符号位不变,其余各位取反,最后+1.(即在反码的基础上+1)
[+1]=[00000001]原 =[00000001]反 =[00000001]补
[-1]=[10000001]原 =[11111110]反 =[11111111]补
对于负数,补码表示方式也是人脑无法直观看出其数值的.通常也需要转换成原码在计算其数值.
*补码的补码是原码
二.补码运算
2.1补码的运算规则
(1)[X+Y]补=[X]补+[Y]补
该运算规则说明:
任何两个数相加,无论其正负号如何,只要对他们各自的补码进行加法运算,就可得到正确的结果,该结果是补码形式。
(2)[X-Y]补=[X]补-[Y]补
该运算规则说明:
任何两个数相减,只要对减数连同“-”号求补,就变成【被减数】补与【-减数】补相加,该结果是补码形式
2.2补码的加法运算
[X+Y]补=[X]补+[Y]补
①X>0,Y>0,则X+Y>0
②X<0,Y<0,则X+Y<0
③X>0,Y<0,则X+Y>0或X+Y<0
④X<0,Y>0,则X+Y>0或X+Y<0
例1:
X=+1001,Y=+0101,求X+Y的补码
解:
X补=01001
+Y补=00101
01110
X+Y=+1110
检验转化为十进制运算:
X=9Y=5X+Y=14答案正确
例2:
X=+1011,Y=-0101,求X+Y的补码。
解:
X补=01011
Y补=11011
X补=01011
+Y补=11011
100110符号位有进位舍弃后结果不变
X+Y=+0110
检验转化为十进制运算:
X=11Y=-5X+Y=6答案正确
注:
虽然符号位有进位,但是在加法运算中符号位进位丢弃,结果不变。
2.3补码的减法运算
负数的加法要利用补码化为加法来做,减法运算也要化为加法来做。
之所以使用这种方法而不用这种直接减法,因为它可以和常规的加法运算使用同一加法器电路,从而简化了计算机的设计。
补码表示时,减法运算公式:
[X-Y]补=[X]补-[Y]补=[X]补+[-Y]补
从[Y]补到[-Y]补的法则是:
对[Y]补包括符号位“求反且最末尾加一”,即可得到[-Y]补
例3X=+1101Y=+0110,求X-Y的补码。
解:
[X-Y]补=[X]补+[-Y]补
[X]补=01101
[Y]补=00110
[-Y]补=11010
X补=01101
+-Y补=11010
丢失100111
X+Y=+0111
三.溢出和溢出分析
3.1溢出的概念
在定点整数机器中,数的表示范围|x|<(2n-1)。
在运算过程中如出现大于字长绝对值的现象,称为“溢出”。
在定点机中,正常情况下溢出是不允许的
例4.X=+1011Y=+1001,求X+Y的补码
[X]补=01011[Y]补=01001
[X]补=01011
+[Y]补=01001
10100
两个整数相加的结果为负数,显然是错的,之所以产生错误,是因为产生了溢出。
两个整数相加,结果大于机器字长所能表示的最大整数,称为正溢。
两个负数相加,结果小于机器所能表示的最小负数,称负溢。
3.2判断溢出
3.2.1双符号位法:
双符号位又称“变形补码”,它使得2n+1补码所能表示的范围扩大了一倍。
采用变形补码之后的符号位是双符号位,例如正数的符号位为“00”,负数的符号位为“11”。
同时它要求:
两个符号位都需要看做数码一样参与运算;最高符号位上的进位要丢弃,计算之后通过判断前两个符号位来看运算有无溢出。
若符号位为“00”或“11”则无溢出,01正溢出,10负溢出。
例5X=+1100Y=+1000,用变形补码方式求X+Y的补码
解:
X补=001100,Y补=001000
X补=001100
+Y补=001000
010100
01正溢出
例6X=-1100Y=-1000,用变形补码方式求X+Y的补码
解:
X补=110100Y补=111000
X补=110100
+Y补=111000
101100
10负溢出。
3.2.2单符号位法
例7:
X=+1100Y=+1000,判断X+Y是否溢出
解:
X补=01100,Y补=01000
X补=01100
+Y补=011000
10100
最高有效位产生进位,但是符号位没有进位,此时产生正溢。
例8:
X=-1100Y=-1000,判断X+Y是否溢出
解:
X补=10100Y补=11000
X补=10100
+Y补=111000
01100
最高有效位无进位,符号位有进位,产生负溢出。
单符号位可用逻辑表达式V=Cf⊕C0表达,Cf为符号位产生的进位,C0为最高有效位产生的进位。
四.实验小结
在这次学习过程中,收获颇多,了解了补码、原码、反码的概念。
补码的运算规则,还有溢出的产生和如何判断溢出。
我们判断是否发生溢出时,一般采用的时双符号位法。
正数的符号位为“00”,负数的符号位为“11”。
同时它要求:
两个符号位都需要看做数码一样参与运算;最高符号位上的进位要丢弃,计算之后通过判断前两个符号位来看运算有无溢出。
若符号位为“00”或“11”则无溢出,01正溢出,10负溢出。
五、参考文献
【计算机组成原理】(第五版.立体化教材)/白中英戴志涛
建议成绩指导教师____________年月日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 补码运算及溢出分析 计算机 组成 原理 补码 运算 溢出 分析 课程设计