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]原
    

    参考:

  • 相关阅读:
    手把手教您玩转信用卡 如何“以卡养卡”合法“套现”
    267家已获第三方许可机构名单查询
    C#生成图片验证码
    File I/O
    文件上传代码
    集合框架
    接口
    多态
    封装
    jsp做成mvc模式的代码
  • 原文地址:https://www.cnblogs.com/xiaoniuzai/p/7200890.html
Copyright © 2011-2022 走看看