1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 原码/补码的加减运算and溢出判断

原码/补码的加减运算and溢出判断

时间:2021-09-05 06:54:35

相关推荐

原码/补码的加减运算and溢出判断

小数点的处理:

任意一个二进制数S都可以表示为

研究小数点就要研究阶码E的取值:

若E=0,则表示纯小数——代表定点小数;

例0.1111表示+0.1111,1.1111表示-0.1111。若E=n,则表示纯正数——代表定点正数;

例01111表示+1111,11111表示-1111。E=m,且0<m<n,小数点在中间n个数内浮动——代表浮点数。

定点数的运算:

1、运算中,采用补码来表示定点数。

2、定点数的移位运算

当某二进制数相当于小数点做n位左移或者右移,相当于该数乘以或者除以2^n

由于机器数的字长都是固定的,当机器数左移或者右移时,都会造成n位低位或者n位高位出现空缺

逻辑移位(无符号数)

算术移位

当机器数为正

例:设机器字长为8,A=+26

A=+26=+11010

[A]原=[A]补=[A]反=0,0011010

当机器数为正,三码相等,左移右移都补0 。

当机器数为负

例:设机器字长为8,A=-26

[A]原=1,0011010

[A]补=1,1100110

[A]反=1,1100101

原码——左移右移补0。

补码——左移补0,右移添1。

反码——左移右移都添1。

定点数的加/减运算

1、原码

加法规则:先判断符号位,若相同,绝对值相加,结果符号位不变;若不同,则做减法,绝对值大的数减去绝对值小的数,结果与绝对值大的数相同。(同号求和,异号求差)减法规则:两个原码表示的数相减,首先将减数的符号取反,然后将被减数与符号取反后的减数按原码加法进行运算。(同号求差,异号求和)

例:[x]原=0.1101,[y]原=1.1001,求[x+y]原、[x-y]原?

[x+y]原:

符号位不同,做减法:

[-y]原=0.0111

最高数值位产生进位,所在数值位.0100,再加上第一操作数的符号0

[x-y]原:

减数的符号取反,

因为数值最高位产生进位,结果正上溢。

2、补码

补码加法

两个数的补码相加,符号位参加运算,且两数和的补码等于两数的补码之和。

例:x=+0.1011,y=-0.1001,求[x+y]补?

[x]补=0.1011 [y]补=1.0111

则:[x+y]补=0.1011+1.0111=0.0010(符号位进位舍去)

即:[x+y]补=0.0010,真值为:+0.0010。

补码减法

由于运算器仅有加法器,则:

例:已知[x]补=0.0010,[y]补=1.1010,求[x-y]补?

[y]补=1.1010,则[-y]补=0.0110

则[x-y]补=0.0010+0.0110=0.1000。

3、特殊的情况——溢出(补码)

溢出产生的原因:当两(小)数相加大于(1或)上界127,称为上溢或者正溢出,两(小)数相加小于(-1或)下界-128,称为下溢或负溢出。发生溢出,数值位扩充,数值位“跑“到符号位,然后取代符号位。导致”两正数相加等于负数,两负数相加等于正数“。计算机判断溢出的方法

①单符号——两符号相同的运算,运算结果符号相反的为溢出。

②双符号法(变形补码法)——检测正负溢出

特点:

两位符号位要联同数值部分一起参加运算。高位符号位产生的进位直接丢弃。

原则:

当两位符号位不同时,表示溢出。高位符号位永远代表真正的符号位。

正溢出

例:已知[x]补=00.1011,[y]补=00.0111,求[x+y]补=?

负溢出:

例:已知[x]补=11.0101,[y]补=11.1001,求[x+y]补=?

③当两个单符号:

当两个单符号位补码进行加减运算时,若最高数值号位向符号位的进位值C与符号位产生的进位输出值S相同,则没有溢出发生;如果两个进位值不同,则发生溢出。

判断公式:C⊕S

例:已知[x]补=1.0101,[y]补=1.1001,求[x+y]补=?

例:已知[x]补=1.1000,[y]补=1.1000,求[x+y]补=?

《计算机组成原理》——唐朔飞

此次分享就到这里,欢迎大家指导指正~ 我是爱吃肉的小白yyyloki,如果你觉得不错的话点个赞👍吧!或者你可以关注,持续更新计组的内容(ps:也许期末用的上)。我们下次见~886

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。