В C и C++ поведение INT_MIN % -1
представляется неопределенным/зависит от платформы в соответствии с Shafik's post.Является ли оператор% Java когда-либо переполнен?
В 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
?
Java в природе независим от платформы, поэтому я предполагаю (не проверено), что ответ ДА – shlomi33