【发布时间】:2014-09-17 07:52:15
【问题描述】:
虽然我对 java 并不陌生,但前几天我观察到了这种奇怪的行为。我通过运行由基本算术运算组成的代码来刷新我的基础知识。现在根据java(以及算术的基本规则),-ve * -ve OR -ve / -ve 是一个+ve 数字。
但是编译这个源码:-
int b = Integer.MIN_VALUE / -1;
System.out.println("b: " + b);
给我输出:-
b:-2147483648
-ve 是哪个,谁能指出我有什么问题?我知道这一定是我无法注意到的小事。
【问题讨论】:
-
-2147483648 / -1=>2147483648=> 溢出 =>-2147483648 -
@MateuszDymczyk 这是答案
-
有趣的事实:一个好的 IDE 会告诉你溢出(刚刚检查)
-
@MateuszDymczyk 谢谢,这很简单 :D ,但我的 IDE 没有发出警告。 (日食开普勒 sr2)
标签: java