C および C++ では、 Shafik の投稿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
ますか?