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

1字节= 8位

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

但是当我将0111 1111 binaru号转换为十进制时。它给了我127

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

提前致谢…

Java中的数字类型是有符号的,这意味着它们可以是负数或正数。 最左边的位( 最高有效位 )用于表示符号,其中1表示负数, 0表示正数。

字节

 Max 01111111 = +127 Min 10000000 = -128 11111111 = -1 

 Max 0111111111111111 = +32767 Min 1000000000000000 = -32768 0000000011111111 = +255 

二进制负数以2的补码forms表示 。

保留一位用于确定数字是负数还是正数。

因此,对于最大正数值将是

  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