zoukankan      html  css  js  c++  java
  • 为什么计算机存储的是二进制补码?


    原码:

    最高位为符号位。。0代表正数 1 代表负数
    +1:0000 0001
    -1:1000 0001
    +0:0000 0000
    -0: 1000 0000

    问题:
    1.0这个数值在存储的时候,有2种存储方式
    2.正数和负数相加的时候,结果不是我们所算出的结果(在计算机里面,只能做加法运算)

    1-1 = 1 + -1

    1: 0000 0001
    -1:1000 0001
    加法:10000010 = -2

    反码:符号位不变,其他位进行0和1的对换(为补码做铺垫)

    结论:正数的反码和原码、补码是一样的

    +1 :0000 0001
    -1 : 1000 0001
    +0:0000 0000
    -0: 1000 0000
    -0的反码:1111 1111

    反码
    +1 : 0000 0001
    -1 :1111 1110

    加法运算 :1111 1111 = -0

    解决:加法运算的结果问题

    0的存储没有解决

    补码:
    1.补码就是在反码的基础上加1;
    2.正数的反码和原码、补码是一样的

    +1 :0000 0001
    -1 :1000 0001
         1111 1110
         1111 1111

    -0: 1000 0000
         1111 1111
        10000 0000
    做加法:+1 + -1(补码)
     0000 0001
     1111 1111
          10000 0000 -0

    +0 : 0000 0000
    -0 : 0000 0000  
    结论:解决了0的存储问题

    最终:计算机的数据存储时以补码的方式进行存储。

  • 相关阅读:
    hdu 6049 Sdjpx Is Happy
    L2-012. 关于堆的判断
    L2-010. 排座位
    L2-009. 抢红包
    L2-007. 家庭房产
    L2-008. 最长对称子串
    L2-011. 玩转二叉树
    l2-006 树的遍历
    l2-005
    l1-20 帅到没朋友
  • 原文地址:https://www.cnblogs.com/wangjinshan/p/7056414.html
Copyright © 2011-2022 走看看