补码加减运算及溢出判断 – skydcl的博客

加强运算:
[x y]补= [x]防御素 [y]防御素
可正好相加。
减法运算:
[X-Y]防御素= [X]补加 (-[Y]补充物剂)
X的补码加Y补码的相对数。(作为作记号的反义词)(称为机具消极性)。

溢出断定:

            率先要担心,给负数加负数,算是将不会溢出(鉴于算是的不受任何限制的麝香,懂得两个添加的数字表现。,算是麝香表达出狱。。)
            因而,溢出麝香是具有相似的作记号的两个数字积和。。
            子记录议论:
                                积极的 积极的
                                作记号位0,数字加强,结果算是的作记号位变为1,这麝香加到两个加号的顶部。。
                                产生溢出。
                                消极性 消极性
                                作记号位均为1。,因而作记号位会流行的。数字加强,结果终极作记号位为0,算是是必定的。,必然是溢出(负数 负数)。!正常的的)。
                                上面是对它的担心,为什么在最高水平上附带说明负数补码,这故障一个人溢出产生。,而故障引来它,它即使溢出?它与负数相异点吗?
                                在补充物溢出的得名次下,负数是鉴于过多的溢出,但负数是。(-5-5 -> 1011+1011 = 10110 ->0110 溢出效应,有迹象泄漏两个负数较大。。

综上:
当作记号位和最高位都缺勤进位(负数相加)或作记号位和最高位都有进位(负数相加),没产生溢出。
最好的一个人产生。,产生溢出。

双作记号位断定溢出:
最好的一个人原始作记号位。,如今加强另一个人手边的。
负数:00 负数 11
算是01小时,算是是必定的。,它的溢出(负数太大)
算是10小时,算是是消极性的。,产生hg0088(负数太小了)
或00或11故障溢出。
某人会问,难道hg0088就将不会是11了吗?
引用:我们的想把算是放入作记号位。,使数字最小(最大不受任何限制的),这样才能溢出效应
11100是最好的用例(这是产生进位的最小补码)。
我们的拿两个 11100 相加
11100+11100=111000 -> 11000 如今是溢流吗?
11000比8,加数 11100比4。
缺勤产生溢出。

移位运算:

算数移位:二元系中,算术移位的左移位 每个一点是* 2,右移/ 2
原码移位,作记号位不插脚移位
防御素移位,作记号位插脚移位。左移位作记号得名次左移位,右移时的作记号位常数,最大补码作记号位。

逻辑移位:把数字看成一个人二元系数串,方法提议和方法提议,作记号位与数字中间缺勤差异。

发表评论

电子邮件地址不会被公开。 必填项已用*标注