Java:java中Integer.max_value+1为什么是个负数?
Integer.max_value=01111111111111111111111111111111,首位0是符号位不参与运算,所以+1后应该是0000000000000...
Integer.max_value = 01111111 111111111111111111111111,首位0是符号位不参与运算,所以+1后应该是0000 0000 0000 0000 0000 0000 0000 0000 吗?(虽然我也觉得不对,但是符号位确实不应该参与运算的不是吗)
展开
10个回答
展开全部
java中int的最大数值是2147483647
这是因为整数在内存中使用的是补码的形式表示,最高位是符号位,0表示正数,1表示负数,当你+1时已经超出了java定义的最大值。详细过程如下
也就是Integer中定义的
public static final int MAX_VALUE = 0x7fffffff;
每个十六进制数4bit,因此8位16进制是4个字节,刚好是一个int整型。
F的二进制码为 1111
7的二进制码为 0111
7fffffff(十六进制) = 0 1111111111111111111111111111111(二进制)
二进制做运算+1 =1 1111111111111111111111111111111
按照规定 最高位 1表示负数 所以你的整个就变成了负数
这是因为整数在内存中使用的是补码的形式表示,最高位是符号位,0表示正数,1表示负数,当你+1时已经超出了java定义的最大值。详细过程如下
也就是Integer中定义的
public static final int MAX_VALUE = 0x7fffffff;
每个十六进制数4bit,因此8位16进制是4个字节,刚好是一个int整型。
F的二进制码为 1111
7的二进制码为 0111
7fffffff(十六进制) = 0 1111111111111111111111111111111(二进制)
二进制做运算+1 =1 1111111111111111111111111111111
按照规定 最高位 1表示负数 所以你的整个就变成了负数
展开全部
Integer.MAX_VALUE = 01111111 11111111 11111111 11111111
+1 = 10000000 00000000 00000000 00000000
最高位是符号位为1,这个数是负数。
在Java中 Integer.MAX_VALUE+1==Integer.MIN_VALUE
负数的源码是补码取反+1,刚好是Integer.MIN_VALUE
+1 = 10000000 00000000 00000000 00000000
最高位是符号位为1,这个数是负数。
在Java中 Integer.MAX_VALUE+1==Integer.MIN_VALUE
负数的源码是补码取反+1,刚好是Integer.MIN_VALUE
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Integer.max_value 二进制是
int 的本身没有负数,公有32位
定义一半表示负数,所以int最小值和最大值是挨着的
分别是0111111.....1 31 个1 最大值
和100....00 31 个0 最小值
最大值+1就直接遍成了最小值
int 的本身没有负数,公有32位
定义一半表示负数,所以int最小值和最大值是挨着的
分别是0111111.....1 31 个1 最大值
和100....00 31 个0 最小值
最大值+1就直接遍成了最小值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
有符号整型的最高位是符号位,0为非负数,1为负数,32位整型的最大值即为0x7FFFFFFF
如果此值加一,则整数部分溢出到符号位,会变为0x8000000,这样就变成了最小负整数了
如果此值加一,则整数部分溢出到符号位,会变为0x8000000,这样就变成了最小负整数了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Integer.max_value = 01111111 111111111111111111111111
+1 = 10000000 00000000 00000000 00000000
最高位是符号位为1,这个数是负数,负数的源码是补码取反+1,刚好等于Integer.min_value
结果当然是负数了,Integer的最小值
+1 = 10000000 00000000 00000000 00000000
最高位是符号位为1,这个数是负数,负数的源码是补码取反+1,刚好等于Integer.min_value
结果当然是负数了,Integer的最小值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询