In C and C++, the behavior of INT_MIN % -1
seems to be undefined / platform-dependent as per Shafik's post.
In Java, does the % operator ever overflow?
Consider this piece of code:
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);
}
}
Is there a platform-independent guarantee that the above results are 0
?