美文网首页
计算机的加减乘除(原码反码补码)

计算机的加减乘除(原码反码补码)

作者: 付剑飞 | 来源:发表于2017-09-17 00:10 被阅读0次

    计算机对数的操作,以二进制为基,因为电子原件只能表达0/1,开或关这两种状态,如果学过模电和数电,对此的理解会更深。
    比如说十进制9,在计算机里不可能单独记个9,而是记录成0000 1001,第一位符号位,0表示正数。但是-9,在计算机里记得就不是1000 1001(原码),而是1111 0111(补码)。
    1、 为什么不用原码记录负数?
    计算机只有加法,没有减法,如果用原码记录负数,则9 + (-9) = 0000 1001 + 1000 1001 = 1001 0010,得到的结果肯定不对
    2、 为什么不用反码记录负数?
    如果用反码记录负数,则9 + (-9) = 0000 1001 + 1111 0110 = 1111 1111,再反码,结果等于1000 0000,这个结果其实是对的,相当于等于-0,和0000 0000是一样的,它表示+0.(因为二者+1都等于0000 0001),但这样就浪费了一个编码,明明0只需要1个数表示就行,可以把1000 0000表示为-128,岂不妙哉。
    3、 采用补码为什么就能解决这个问题?
    如果用补码记录负数,则9 + (-9) = 0000 1001 + 1111 0110 = 1111 1111,再+1,等于0000 0000,刚好为0

    总结:计算机中只有加法,没有减法,需要用补码来表示负数,减法的表示方法变成了:加一个负数。

    此外,没有乘法和除法,那么怎么表示乘除呢?
    移位,左移乘2,右移除2
    比如3 * 5 = (0000 0010 + 0000 0001) * 0000 0101,第一项是25,等于0000 0101往左移一位=0000 1010,第二项是15=0000 0101,二者加起来=0000 1111=15
    除法类似。

    相关文章

      网友评论

          本文标题:计算机的加减乘除(原码反码补码)

          本文链接:https://www.haomeiwen.com/subject/kwxpsxtx.html