社区
Java SE
帖子详情
java int 的最大值+1为什么是-2147483648
蛋蛋の忧伤
2012-10-26 02:17:53
为什么呢?一直搞不明白
...全文
7727
25
打赏
收藏
java int 的最大值+1为什么是-2147483648
为什么呢?一直搞不明白
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
25 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
从此安心潜水被占用
2012-10-29
打赏
举报
回复
[Quote=引用 24 楼 的回复:]
首先,明确,最高位是符号位。超过最大值导致符号位改变,所以是负数
[/Quote]
是的,最高位是符号位,你所说的最大值+1是因为最大值的二进制值的最高位是0,而0是一个符号位,当你的最大值+1的时候,结果就是10000000……除了最高位是1外,其他的都是0,所以就会变成负数,就像22楼说的那样,楼主可以看看源码,补码和反码这一块的知识,应该会有个比较全面的认识
LiangGzone
2012-10-27
打赏
举报
回复
首先,明确,最高位是符号位。超过最大值导致符号位改变,所以是负数
zhaoming262350
2012-10-27
打赏
举报
回复
int 的取值范围是 -2147483648 ——2147483647
2147483647 的二进制数是1111111 11111111 11111111 11111111 + 1 =
10000000 00000000 00000000 00000000 就是-2147483648
依琳小师妹
2012-10-27
打赏
举报
回复
反码、原码、补码
zhouhaiyangqq
2012-10-27
打赏
举报
回复
楼上正解,多看书有好处
yuchen208
2012-10-27
打赏
举报
回复
int 的4个字节
haorengoodman
2012-10-27
打赏
举报
回复
4楼,5楼都给答案了,楼下的都不看吗?杯具
蛋蛋の忧伤
2012-10-27
打赏
举报
回复
承认计算机原理这个课很枯燥无趣
fly_free_will
2012-10-26
打赏
举报
回复
16楼正解
print_er
2012-10-26
打赏
举报
回复
[Quote=引用 15 楼 的回复:]
个人理解..
int 是32位的 左边1位是符号位 其他31位是数值位
最大的正整数 符号位是0 其他位都是1
这个数+1进位之后 符号位变成1 其他位变成0 就是最大的负整数
不知道解释的对不对
[/Quote]
应该是最小的负数..
print_er
2012-10-26
打赏
举报
回复
个人理解..
int 是32位的 左边1位是符号位 其他31位是数值位
最大的正整数 符号位是0 其他位都是1
这个数+1进位之后 符号位变成1 其他位变成0 就是最大的负整数
不知道解释的对不对
yousun4688
2012-10-26
打赏
举报
回复
是不是成了补码的表示形式
kilimanjaroup
2012-10-26
打赏
举报
回复
[Quote=引用 7 楼 的回复:]
现在的计算机专业 都不需要学 '微机原理'了吗?
[/Quote]
现在搞Java不需要计算机专业
liangtu
2012-10-26
打赏
举报
回复
补码的问题,说实话,这个东西理解完就扔了。
cstur4
2012-10-26
打赏
举报
回复
这个是组成原理的知识,跟java没有关系。
lonekay
2012-10-26
打赏
举报
回复
因为最大值+1就成最小值了,最小值就是那个-值
orangleliu
2012-10-26
打赏
举报
回复
这也和java有关系啊。。
haorengoodman
2012-10-26
打赏
举报
回复
[Quote=引用 7 楼 的回复:]
现在的计算机专业 都不需要学 '微机原理'了吗?
[/Quote]
需要,但是都丢的差不多了。
想喝咖啡的貓
2012-10-26
打赏
举报
回复
现在的计算机专业 都不需要学 '微机原理'了吗?
sgyyz
2012-10-26
打赏
举报
回复
计算机都是用补码来进行运算的,组成原理里面有将的很详细啊……
加载更多回复(5)
Java
中
int
数据类型
最大值
+1 为什么会变成负数?
问题来了为什么
int
类型
最大值
+1后会变成负数? 这是因为整数在内存中使用的是补码的形式表示,最高位是符号位,0表示正数,1表示负数: 例如一个8位的整数 正数的补码:为这个数的2进制码,例如3:0000 0101 负数的...
Java
中
int
和long类型的取值范围及
int
类型最小值为什么是-
2147483648
而不是-2147483647
int
型变量的取值范围
java
中
int
数据类型占4个字节,32位 ...
int
类型最小值为什么是-
2147483648
而不是-2147483647 在计算机系统中,数值一律用补码来表示和存储。原因在于,使用补码,可以将符号位和数
int
最小值为何是-
2147483648
,而不是-2147483647
int
最小值为何是-
2147483648
,而不是-2147483647(-
int
_max) 【原文地址】 参考博客: 作者:雨细泷游 来源:CSDN 原文:https://blog.csdn.net/weixin_44042017/article/details/86646271 首先这是针对
int
占4个...
java
int
eger
最大值
_
java
int
型
最大值
/最小值,
最大值
+1,最小值-1
java
中,
int
型变量是有符号整形变量。
int
型变量占用4个字节(32bit位)。
int
型变量采用补码形式来表示数值。对于一个二进制数,正数的补码是其本身,负数的补码是所有二进制位取反再加一。
int
变量中,第一位是符号位(0...
java
中
int
型的
最大值
_
java
int
的
最大值
Int
eger.MAX_VALUE
java
int
类整数的
最大值
是 2 的 31 次方 - 1 =
2147483648
- 1 = 2147483647可以用
Int
eger.MAX_VALUE 表示它,即
int
value =
Int
eger.MAX_VALUE;
Int
eger.MAX_VALUE + 1 =
Int
eger.MIN_VALUE = -
2147483648
再大的...
Java SE
62,614
社区成员
307,326
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章