美文网首页
附录A:原码、反码和补码

附录A:原码、反码和补码

作者: 秋的懵懂 | 来源:发表于2018-07-16 20:29 被阅读0次

时间:2018-07-16 作者:魏文应


一、正数和负数的表示方法

我们知道,正数和它的相反数相加时,会等于0,比如 1 + (-1) = 0, 33 + (-33) = 0。使用二进制,我们可以暂时规定,最高位是0 表示是正数, 最高位是1 表示负数:

  • 正数和负数表示

二、为什么需要补码?

我们有下面假设:

  • 我们用 0000 1111 表示 +7 正数7,用 1000 1111 表示 -7 负数 -7,那么相加的结果就是 1001 1110

  • 我们用 0000 0001 表示 +1 ,用 1000 0001 表示 -1,相加结果是 1000 0010

上面两个例子, 7 + (-7) = 0 = 1001 11101 + (-1) = 0 = 1000 0010 。我们发现,同样表示0,二进制的结果不一样。这当然不是我们想要的,我们希望二进制相加的0的结果一直是 0000 0000。下面我们换个思路来表示数值:

  • 正数保持不变, 0000 1111 依然表示 +7

  • 找一个数和 0000 1111 相加,使其结果为 0000 000 。这个数计算如下:

    0000 1111 + 1111 0000 + 1 = (1) 0000 0000
    

    计算结果为 1 0000 0000 ,我们把第九位直接丢弃,结果就是我们想要的 0000 0000

  • 观察发现,只要在正数的基础上,取反并加1,就能使得 这个正数取反并加1 相加的结果为 0000 0000。也就说,正数 取反并加1 这个正数对应的相反数。比如:正数1 可以通过这种方式,求得正数 -1的二进制反码写法

  • 上面 1111 0000 + 1 就是我们要求的 补码 了。

0111 0000 取反就是 1000 1111,把 0011 0000 取反就是 1100 1111,我们发现,都会有一个 独一无二 的反码和原码对应。也就意味着补码也是独一无二的:

  • 0000 00010111 1111 ,就是 1 ~ 127

  • 1111 1110 + 11000 0000 + 1 ,就是 -1 ~ -127

  • 0000 0000 表示 0。这时发现 1000 0000 还没有用,怎么办?思来想去,最后设计芯片逻辑运算的那帮家伙说:“算了,用它来表示 -128 吧!!!” 也正是这个原因,导致有了 -128 没有反码 这种说法的产生。

相关文章

  • 原码、反码、补码和移码

    书中关于原码、反码、补码和移码的定义如下(n是机器字长):原码: 反码: 补码: 移码: 原码, 反码, 补码的基...

  • 计算机为什么要使用原码、反码、补码

    1. 什么是原码、反码、补码 先看一个例子: +1和-1的原码、反码、补码的表示 原码、反码、补码的计算方式如下:...

  • 软件测评师做题技巧

    第一类补码,反码,原码 正数:原码=反码;补码=原码负数:反码=原码求反;补码=反码+1 第二类用例概率的计算 测...

  • 附录A:原码、反码和补码

    时间:2018-07-16 作者:魏文应 一、正数和负数的表示方法 我们知道,正数和它的相反数相加时,会等于0,...

  • 2018-10-22 Python31 原码、反码、补码

    原码、反码、补码 1)如何计算补码?规则: 正数:原码 = 反码 = 补码负数:反码 = 符号位不变,其他位取反补...

  • 原码、反码和补码

    正数的原码、反码和补码相同,亦是正数 负数的原码、反码和补码符号位为1,代表负数,反码在原码的基础上符号位不变,其...

  • 补码

    原码、反码、补码 原码:符号位 反码:减法变加法 补码:+1解决-0问题 数学原理 同余 反码:mod127 补码...

  • JAVA中负数的二进制表示

    计算机对有符号数(包括浮点数)的表示有三种方法:原码、反码和补码,反码=原码按位取反 补码=反码+1。 移码为补码...

  • 【计算机】我的收藏文章索引

    索引表 索引标题链接摘要原码、反码、补码《原码、反码、补码,详解》http://www.cnblogs.com/z...

  • java中二进制、八进制、十进制、十六进制的转换

    运行结果: 然后简单总结一下原码、反码和补码:正数:原码、反码和补码都相同负数:原码:第一位为符号位,后面是数字位...

网友评论

      本文标题:附录A:原码、反码和补码

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