根据Shafik 的帖子,在 C 和 C++ 中, 的行为 INT_MIN % -1
似乎是未定义的/平台相关的。
在 Java 中,% 运算符是否会溢出?
考虑这段代码:
public class Test {
public static void main(String[] args) {
// setup variables:
byte b = Byte.MIN_VALUE % (-1);
short s = Short.MIN_VALUE % (-1);
int i = Integer.MIN_VALUE % (-1);
long l = Long.MIN_VALUE % (-1);
// my machine prints "0" for all:
System.out.println(b);
System.out.println(s);
System.out.println(i);
System.out.println(l);
}
}
上述结果是否有独立于平台的保证0
?