11111111111111111111111111111111(32個の1)をInteger.parseInt に基数2を指定するとどうなるか。 2007/11/06

11111111111111111111111111111111(32個の1)をInteger.parseInt に基数2を指定するとどうなるか。

static void a() {
String s = "";
for (int i = 0; i < 32; i++)
s += "1";
System.out.println(s);
System.out.println("length:" + s.length());
int B32 = Integer.parseInt(s, 2);
}


結果は
11111111111111111111111111111111
length:32
Exception in thread "main" java.lang.NumberFormatException: For input string: "11111111111111111111111111111111"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
at java.lang.Integer.parseInt(Integer.java:459)
at p2799_not_soleved.Test3.a(Test3.java:22)
at p2799_not_soleved.Test3.main(Test3.java:13)



参考
プログラマメモ2: ビットで表示しましょう。 - いまさらながらですが。

: