【发布时间】:2017-10-28 23:25:45
【问题描述】:
我正在尝试使用以下代码将负 Integer.MIN 转换为正长值:
long lv = -1 * value_int;
上面的代码可以完美运行,除非 value_int = Integer.MIN_VALUE 的值。 Integer.MIN_VALUE 情况下,lv 的值始终为 Integer.MIN_VALUE;
以下代码适用于所有情况,包括 Integer.MIN_VALUE
long lv = value_int;
lv = -1 * value_int;
知道为什么 long lv = -1 * value_int 在 Integer.MIN_VALUE 情况下不起作用吗?
【问题讨论】:
-
@Oleg 这是一个 C# 问题/答案。虽然在这种情况下,问题可能非常相似,但它不是一个好的重复。
-
@ErwinBolwidt 你可能是对的。找到了另一个stackoverflow.com/questions/24755629/int-to-long-assignment,虽然也不是很合适。我可能应该停止浪费时间标记重复并回答明显的重复,如果没有人关心这里的内容质量,我为什么要这样做? (只是咆哮,不是针对你)