• 【码制】关于原码,反码,补码的一些笔记和理解


    前提:1.本文使用8位二进制表示

       2.主要是定点数的的使用

       3.正数的原,反,补码相同

    正文:一.整数

       8位二进制原码的表示范围:-127~+127
       8位二进制反码的表示范围:-127~+127
       8位二进制补码的表示范围:-128~+127

       -(2^7-1)= -127         原码:1111 1111  补码:1000 0001

       2^7-1= +127              原码:0111 1111  补码:0000 0001

    在原码,反码中0分为  +0  和  -0;

    【+0】原=0000 0000

    【-0】原=1000 0000

    在补码的表示法中,0只有一种表示形式:

    【+0】补=0000 0000

    【-0】补=1111 1111 + 1=1 0000 0000(由于受到设备字长的限制,最后的进位的丢失)

    所以有【+0】补=【-0】补=0000 0000

       提问:为什么补码中会多出现-128的数字?

       答案:首先【-0】原=1000 0000  在 补码在中由于字长的限制使得【+0】补=【-0】补=0000 0000

       其次 原,反,补码的二进制范围都为0111 1111到1111 1111

        【-0】在补码中的二进制丢失,但是1000 0000任然存在,那么应该1000 0000应该代表什么呢?  

     

       再来说一说 -128 的机器码

       原码:1 1000 0000

       反码:1 0111 1111

       补码:1 1000 0000,截取低8位即1000  0000,表示的是一个负数。

       补码正好也是1000 0000,于是便填充了【-0】的补码 1000 0000 的空位

       于是补码的范围便是  -128 ~ +127

  • 相关阅读:
    Maven+SSM框架搭建【spring+springmvc+mybatis】
    [福大软工] W班 总成绩排行榜
    项目Beta冲刺团队随笔集
    45度炸队Alpha冲刺博客集
    SDN期末验收
    小黄衫——共同的荣誉
    软件工程实践总结作业
    SDN第五次上机作业
    SDN第四次作业
    总结随笔
  • 原文地址:https://www.cnblogs.com/Zoeun/p/11480068.html
Copyright © 2020-2023  润新知