zoukankan      html  css  js  c++  java
  • 对原码、反码和补码的理解

    一个字节是8个bit位,也就是8位二进制数。

    1、正整数的原码、反码和补码。

      100的原码:0110 0100

      100的反码:0110 0100

      100的补码:0110 0100

    2、负整数的原码、反码和补码。

      -100的原码:1110 0100

      -100的反码:1001 1011

      -100的补码:1001 1100

    注:

      1、正数的原码、反码和补码表示方式均相同,不需转换。

      2、负数转换成二进制数(也就是原码)在前面要加符号位(1)。

      3、负数的反码,将原码的各位取反,符号位不变

      4、负数的补码,将反码加上二进制1即可。

    补码的由来:

      补码是为了简化减法而出现的。在我们计算减法的时候,将减号看作是负号,再将负数转化为补码求加法。这也是为什么正数的原码、反码和补码是一样的原因(和正数就没有关系)。

      在计算机系统中,数值一律用补码来表示和存储。是因为使用补码可以将符号位和数值域统一处理,同时加减法也可以统一处理。

    例如:

      72 - 53 = 72 + (-53) = 

      72转化为二进制数为:0100 1000

      -53转化为二进制数(原码)为: 1011 0101   反码为: 1100 1010    补码为:1100 1011

      72 + (-53) = 0100 1000 + 1100 1011 =  0001 0011 

      将二进制数0001 0011 转化为十进制数为19(在计算的时候,在最高位也需要进1,但是只有8位,所以只能丢掉向前进的1位)

      公式:被减数 - 减数 = 被减数 + (负的减数) = 被减数的原码 + 负的减数的补码 

    注:

      十进制负整数的转换成二进制,也就是对其十进制正整数转换成二进制,所以十进制负整数表示成二进制就是其补码形式。

  • 相关阅读:
    MongoDB 备份方法
    Wix制作安装包
    OWIN and Katana
    JavaScript的语法要点 4
    JavaScript的语法要点 3
    Docker配置镜像源(windows)
    Centos 7 安装gdal
    centos下forever安装nodejs服务
    Ngix初识
    arcgis支持mongodb
  • 原文地址:https://www.cnblogs.com/coolYuan/p/9234634.html
Copyright © 2011-2022 走看看