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