java中的字节范围是-128到127.How有可能吗?

时间:2013-05-18 06:34:25

标签: java byte

1字节= 8位

我将1111 1111二进制数转换为十进制。它给了我255

但是当我将0111 1111二进制数转换为十进制时。它正在给我127

所以在什么基础上声明范围。请帮助我。

提前致谢...

2 个答案:

答案 0 :(得分:4)

Java中的数字类型已签名,这意味着它们可以是负数或正数。最左边的位(most significant bit)用于表示符号,其中1表示否定,0表示正数。

<强>字节

Max 01111111  = +127
Min 10000000  = -128

    11111111  = -1

<强>短

Max 0111111111111111  = +32767
Min 1000000000000000  = -32768

    0000000011111111  = +255

二进制负数用2's complement form表示。

答案 1 :(得分:1)

保留一位用于判断数字是负数还是正数。

因此,最大正数值将是

 01111111 which gives the int number as 128(leftmost bit 0 represent its a postive number)

        64+32+6+8+4+2+1= 127

对于最大负数值将((最左边的第1位代表其负数))

  10000000 which gives the int number as -128

  -128+0+0+0+0+0+0+0 = -128

因此范围变为

  -127 to 128