美文网首页
二进制:整理

二进制:整理

作者: qingshuiting | 来源:发表于2019-01-25 17:28 被阅读0次

    二进制:整理

    最初的一个问题是来源于 signed byte的范围为什么是[-128,127],为什么不是[-127,127]。

    下面的内我直接使用+1-1进行举例

    机器数与真值

    一个数在计算机中的表示都是直接使用二进制,这种二进制表示方式就是机器数。因为有正负之分,所有在机器数中采用最高位来表示正(0)或者负(1)。

    所以对应的+1-1的机器数为:

    +1   0000 0001
    -1   1000 0001
    

    机器数0000 00011000 0001对应的真值分别为 +1-1

    原码

    符号+真值对应的绝对值。

    +1 的源码为 0000 0001

    -1 的源码为 1000 0001

    那么如果使用原码表示的话,signed byte的范围是[0111 11111111 1111]。

    反码

    反码:正数的反码是原码本身;负数的反码是符号位不变,其他位取反

    补码

    补码:正数的补码是原码本身;负数的补码是反码+1

    原因

    • 计算机中没有那么多的计算方式,加+是最基础的计算方法,那么对于减肥就是使用加上一个负数。
    • 1-1=0=1+(-1)

    如果使用原码表示 1-1 = 0 结果是错误的。

    如果使用反码表示 1-1 = 0,最后的结果是0000 0000 1000 000都表示0,因为是+0-0,所以才导致了理论的表达范围为[-127,127]

    如果使用补码表示 1-1 = 0,最后的结果是0000 0000 表示0,所以可以直接使用1000 0000表示-128

    相关文章

      网友评论

          本文标题:二进制:整理

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