[java]Integer.MAX_VALUEに1を足してみたら
2010/11/11
2010/11/11
java
Javaです。
同じまちがいをおこすということは、きっとそのまちがいが自分の根っこの部分にマッチしているからなのだなーと思う今日この頃です。
Integer.MAX_VALUEに1を加算するといったいどんな値になるのでしょうか?
試してみましょう。
public class A {
public static void main(String[] args) {
a();
b();
}
static void a(){
int i = Integer.MAX_VALUE + 1;
System.out.println(i);
System.out.println(Integer.MIN_VALUE);
}
static void b(){
int i = Integer.MIN_VALUE - 1;
System.out.println(i);
System.out.println(Integer.MAX_VALUE);
}
}
public static void main(String[] args) {
a();
b();
}
static void a(){
int i = Integer.MAX_VALUE + 1;
System.out.println(i);
System.out.println(Integer.MIN_VALUE);
}
static void b(){
int i = Integer.MIN_VALUE - 1;
System.out.println(i);
System.out.println(Integer.MAX_VALUE);
}
}
-2147483648
-2147483648
2147483647
2147483647
結果は、Integer.MIN_VALUEとなります。
同じようにInteger.MIN_VALUE - 1してみますと、Integer.MAX_VALUEとなります。
循環しているのですね。
あっ、既視感(déjà-vu).....
関連
プログラマメモ2: java 2の31乗とInteger.MAX_VALUE
: