• 为什么一个字节可以表示的有符号整数的范围是-128~+127?


    为什么是-127~128?

      对于一个字节来说,能够表示的整数为什么不是-127~+127,也不是-127~+128,而是-128~+127

      对于有符号整数的表示和具体的编程语言无关,而是由硬件决定的,我们能想到的最简单的方法就是用其中一位表示符号,剩余七位用来表示数据位。

      但这种方法有一个缺陷,就是会有+0和-0两个0,能够表示的数据只有-127~+127,同时使用两个位组合表示同一个数字有些浪费,补码很好的解决了这一问题。

      首先,对于正数的表示方法,与上述方法相同,但对于负数,首先符号位置为1,表示负。剩余7位数据位的表示方法和上述有很大不同。

      从一个9位组合10000000(无符号2进制)中减去一个负数的位组合,就是该负数值的数量。

      

      同理,-127可以表示为10000001:

       至此已经可以解释为什么一个字节可以表示的有符号数范围是-128~+127了。

      同时,如果要对二进制补码取反,只需要对其每一位取反再加一即可,例如,1是10000000,所以-1是11111110+1,即11111111,和前面所看到的是一样的。

  • 相关阅读:
    maven引入tomcat插件
    Maven更新jdk1.7
    ehcashe
    response的json
    ajax
    180411
    清空select标签中option选项
    jackson
    ajax
    mysql主从
  • 原文地址:https://www.cnblogs.com/Dylan7/p/12649972.html
Copyright © 2020-2023  润新知