0

1 字节 = 8 位

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

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

那么在什么基础上宣布范围。请帮助我。

提前致谢...

4

2 回答 2

4

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

字节

Max 01111111  = +127
Min 10000000  = -128

    11111111  = -1

短的

Max 0111111111111111  = +32767
Min 1000000000000000  = -32768

    0000000011111111  = +255

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

于 2013-05-18T06:45:05.397 回答
2

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

所以对于最大正数值将是

 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
于 2013-05-18T06:56:34.583 回答