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

原码,补码,反码

作者: 转身丶即天涯 | 来源:发表于2019-07-10 07:48 被阅读0次

    前言

    一个数值在计算机中是以二进制存在的,我们管这样的数值叫“机器数”,而表示机器数的范围和“机器字长”息息相关。
    所以,在学习原码,补码,反码之前,可以先了解一下“机器字长”的概念。

    本文主要讲原码,补码,反码的计算方式。


    原码

    比如一个十进制数7,它的二进制可以表示为0000 0111。
    从左到右,第一位表示符号位,0表示正数,1表示负数。
    所以7的原码就是 0000 0111,那么-7的原码就是1000 0111。

    以“机器字长”为8位的二进制为例,刨除第一位的符号位,其实它有7位用来表示数值的取值范围,也就是-2^7-1 到 2^7-1,换算成十进制就是-127到127

    反码

    反码的运算规则取决于符号位。
    如果是正数,那么 原码=反码。
    如果是负数,符号位不变,数值位按位取反。
    我们还是以7(0000 0111)为例。
    那么7的反码就是 0000 01111
    如果是-7(1000 0111)呢?
    -7的反码是 1111 1000

    补码

    补码的运算规则是:
    如果是正数,原码=补码。
    如果是负数,补码=反码+1

    还是以7(0000 0111)为例:
    因为7是正数,所以补码=原码,0000 0111

    如果是-7(1000 0111)呢?
    我们需要先计算-7的反码。反码为 1111 1000.
    然后在反码值上+1,补码为 1111 1001


    后序

    对于软考而言,里面还设计了很多其他“码”,比如海明码,CRC码,以后再开篇博客学习。

    相关文章

      网友评论

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

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