• 有符号数的范围


    范围是 -128至127.
    根据补码的几条规定即可推出上述结论:
    1 若二进制每位全为0,则表示数0
    2 若最高位(即符号位)为0,表示正数
    3 若最高位为1, 表示是负数,而该负数的绝对值是多少呢?将每个二进制位(包括符号位)取反加1,得到一个二进制数,将该数看成无符号数,其值就是上述负数的绝对值。

    例如,二进制的 10000000 的最高位为1, 所以它表示的是负数。是负的多少呢?我们将其八位全部取反,得到01111111, 然后加1,得到10000000. 将该数看作无符号数,值为128, 故计算机中的10000000表示的是-128

    最高位(即符号位)为1的8位有符号数有128个,故可表示128个负数;最高位为0的8位有符号数有128个,但全0的那个表示数0,所以总共只能表示127个正整数。

    https://wenku.baidu.com/view/4d9cfe8b7cd184254a353515.html

    用2^8来表示无符号整数的话,全世界的理解都是0 - 255了,那么,有符号呢? 用 最高位表示符号,0 为+,1 为-,那么,正常的理解就是-127 至+127 了. 

    这就是原码了,值得一提的是,原码的弱点,有2 个0,即+0 和-0,还有就是,进行异 号相加或同号相减时,比较笨蛋,先要判断2个数的绝对值大小,然后进行加减操作, 

    最后运算结果的符号还要与大的符号相同. 

    于是乎,反码产生了,原因....略,反正,没过多久,反码就成为了过滤产物,也就是,后 来补码出现了. 补码的知识不说述,只说有关+127 和-128 的. 

    官方的定义[-2^(n-1),2(n-1)-1],

    http://blog.csdn.net/shuzfan/article/details/77601037

    在计算机中无符号数用原码表示,有符号数用补码表示。w位补码表示的值为:

    最高位 也称符号位,1表示负数,0表示正数,符号位为0时,和无符号数的表示是相同的,以下是4位补码的示例:

    0101 = -0*2+ 1*2+ 0*21 + 1*20 = 5

    1101 = -1*2+ 1*2+ 0*21 + 1*20 = -3

    w位的补码表示的数值范围是[-2w-1, 2w-1-1],如4位的补码表示的最小值是-8(1000),最大值是7(0111)。

  • 相关阅读:
    Something broke! (Error 500)——reviewboard
    linux内核--自旋锁的理解
    I.MX6 mkuserimg.sh hacking
    I.MX6 DNS 查看、修改方法
    I.MX6 android mkuserimg.sh
    I.MX6 AW-NB177NF wifi HAL 调试修改
    I.MX6 wpa_supplicant_8 编译问题
    I.MX6 MAC Address hacking
    I.MX6 MAC地址修改
    I.MX6 U-boot imxotp MAC address 写入
  • 原文地址:https://www.cnblogs.com/xiaoxuesheng993/p/7467116.html
Copyright © 2020-2023  润新知