byte的取值范围只能是:-128 -- 127了  即 负的2的7次方到2的7次方减去1。为什么 byte 的最大值  2的7次方减去1。希望大家 能讲解通俗易懂点 谢谢

解决方案 »

  1.   

    byte 8位: 最大值的二进制形式0111111 = 127, 最小值的二进制形式10000000 = -128 
      

  2.   

    一个byte是8位的,最前一个是符号位,最大也只能是0111 1111也就是+127
    如果127+1变成1000 000这个时候第第一位为1,要取其补码,前面加符号,就是-128,看看计算机的补码怎么表示就知道了
      

  3.   

    byte数据占一个字节,一个字节有8位,因此byte的最大值使用二进制表示是01111111,最左边的0为符号位,0表示正数,1表示负数,所以最小值为11111111,把它们转换成十进制就分别是127和-128了
      

  4.   

    一个字节有8位,所以byte的范围是00000000---11111111
    有很多语言byte是无符号的,因此范围就是0-255java中byte是有符号表示的,所以00000000--01111111对应在 0~127
    10000000-11111111对应在-128~-1
      

  5.   

    谢谢10、11楼纠正,刚才急着去吃饭,我没有检查就贴出去了。
    11111111是-1的补码
    10000000是-128的补码
    总结:byte数据占一个字节即8位,正数使用原码表示,负数则使用补码表示。因此byte数据表示范围为-128~127
    补码的计算方法:正数的补码与原码一样,负数的补码为原码(不包括符号位)取反加1
      

  6.   

    1000 0001 是-1 的原码;
    1111 1111 是-1 的补码;
    byte数据占一个字节即8位,正数使用原码表示,负数则使用补码表示。
    所以在byte数据中就是 1111 1111 了。是这样吧?