zoukankan      html  css  js  c++  java
  • -128补码

    用八位的二进制来表示,-128补码是10000000

    那为什么是10000000呢???

    用8位的二进制来表示一个数,它的范围是-128~127

    我们按照书本求补码是这样的:原码->反码->补码

    现在问题来了,8位2进制数的源码范围只能到达127,那-128的补码是怎么得来的呢???

    参考知乎@Simon Cao的答案:

    https://www.zhihu.com/question/20458542

    总结:

    • 负数的表达方式就是它绝对值的补数
    • 在8位二进制数中,0-127表示正数,128-255表示负数

    参考映射表:

    
    
    +----------------------------+
    | 255      -1      11111111  |
    | 254      -2      11111110  |
    | 253      -3      11111101  |
    | 252      -4      11111100  |
    | 251      -5      11111011  |
    | 246      -10     11110110  |
    | 236      -20     11101100  |
    | 226      -30     11100010  |
    | 216      -40     11011000  |
    | 206      -50     11001110  |
    | 196      -60     11000100  |
    | 186      -70     10111010  |
    | 156      -100    10011100  |
    | 129      -127    10000001  |
    | 128      -128    10000000  |
    | 127      127     01111111  |
    | 100      100     01100100  |
    | 70       70      01000110  |
    | 60       60      00111100  |
    | 50       50      00110010  |
    | 40       40      00101000  |
    | 30       30      00011110  |
    | 20       20      00010100  |
    | 10       10      00001010  |
    | 5        5       00000101  |
    | 4        4       00000100  |
    | 3        3       00000011  |
    | 2        2       00000010  |
    | 1        1       00000001  |
    | 0        0       00000000  |
    +----------------------------+
    

    8位二进制数的模是256

    参考表来看的话:

    • 0-127的数都是正数,可以直接表示。
    • 当我要求-1补码时(8位2进制数),我可以这样求:256-1=255,255的二进制数是11111111
    如果您觉得这篇文章帮助到了您,可以给作者一点鼓励



  • 相关阅读:
    Linux下增加User及添加sudo权限
    windows下的asp.net core开发及docker下的发布
    Linux下建立虚拟内存
    Github访问慢解决办法
    Uva 10061
    SYOJ 1001. Alphacode
    SRM144DIV1 Lottery
    SRM609 DIV2 950
    mysql 半同步
    mysql root用户不知到密码的情况下修改密码
  • 原文地址:https://www.cnblogs.com/zhong-fucheng/p/7203021.html
Copyright © 2011-2022 走看看