zoukankan      html  css  js  c++  java
  • 原码,反码,补码

    计算机可以有三种编码方式表示一个数。对于正数因为三种编码方式的结果都相同

    出于计算方便的原因需要有反码、补码的存在

    原码

    第一位表示符号, 其余位表示值

    8位二进制

    [+1]原 = 0000 0001
    [-1]原 = 1000 0001
    

    范围为:

    [1111 1111 , 0111 1111] => [-127 , 127]
    

    反码

    • 正数的反码是其本身
    • 负数的反码是在其原码的基础上, 符号位不变,其余各个位取反.
    [+1] = [00000001]原 = [00000001]反
    [-1] = [10000001]原 = [11111110]反
    

    补码

    • 正数的补码就是其本身
    • 负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1. (反码加一)
    [+1] = [00000001]原 = [00000001]反 = [00000001]补
    [-1] = [10000001]原 = [11111110]反 = [11111111]补
    

    机器可以只有加法而没有减法

    1-1 = 1 + (-1) = [0000 0001]原 + [1000 0001]原 = [0000 0001]补 + [1111 1111]补 = [0000 0000]补=[0000 0000]原
    

    参考:

  • 相关阅读:
    JAVA 练习1
    JSP基础
    网络协议
    mysql基础
    python之高级
    powershell基础
    python之迭代器与遍历
    python之面向对象
    linux常用命令
    docker 安装 ElasticSearch:7.4.2
  • 原文地址:https://www.cnblogs.com/xiaoniuzai/p/7200890.html
Copyright © 2011-2022 走看看