美文网首页
原码、反码、补码

原码、反码、补码

作者: 与时间共舞 | 来源:发表于2020-05-11 17:06 被阅读0次

原码:

原码就是早期用来表示数字的一种方式: 一个正数,转换为二进制位就是这个正数的原码。负数的绝对值转换成二进制位然后在高位补1就是这个负数的原码。

举例:

int类型的 3 的原码是 11B(B表示二进制位), 在32位机器上占四个字节,那么高位补零就得:

00000000 00000000 00000000 00000011

int类型的 -3 的绝对值的二进制位就是上面的 11B 展开后高位补零就得:

10000000 00000000 00000000 00000011

但是原码有几个缺点,零分两种 +0 和 -0 。很奇怪是吧!还有,在进行不同符号的加法运算或者同符号的减法运算的时候,不能直接判断出结果的正负。你需要将两个值的绝对值进行比较,然后进行加减操作 ,最后符号位由绝对值大的决定。于是反码就产生了。

反码:

正数的反码就是原码,负数的反码等于原码除符号位以外所有的位取反
举例:

int类型的 3 的反码是

00000000 00000000 00000000 00000011

和原码一样没什么可说的

int类型的 -3 的反码是

11111111 11111111 11111111 11111100

除开符号位,所有位,取反

解决了加减运算的问题,但还是有正负零之分,然后就到补码了

补码:

正数的补码与原码相同,负数的补码为 其原码除符号位外所有位取反(得到反码了),然后最低位加1.

举例:

int类型的 3 的补码是:

00000000 00000000 00000000 00000011

int类型的 -3 的补码是

11111111 11111111 1111111 11111101

就是其反码加1

最后总结:

正数的反码和补码都与原码相同。

负数的反码为对该数的原码除符号位外各位取反。

相关文章

  • 软件测评师做题技巧

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

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

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

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

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

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

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

  • 补码

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

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

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

  • [计基]-二进制之补码

    一.基础名词 原码 : 0011 反码 :0011(原码) >> 1100(反码) (原码按位取反) 补码 :00...

  • 技术问 - 原码、反码、补码

    什么是原码、反码、补码:

  • 位运算

    1.原码、反码、 补码正数的原码、反码、 补码都一样 正数以原码存储在计算机负数 以补码存储在计算机 例...

  • 原码、反码和补码

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

网友评论

      本文标题:原码、反码、补码

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