2

次の問題があります:

一部のバイナリ文字列を整数に変換したい:

eargb = Integer.parseInt(al + re + gre + blu, 2);

しかし、次の例外が発生します。なんで?

java.lang.NumberFormatException: For input string: "11111111111000101000100111111010"
4

4 に答える 4

7

数値 (4,293,036,538) は大きすぎて、signed int (-2,147,483,648 から 2,147,483,647 の範囲) に収まりません。

代わりに long を使用してみてください。これはより広い範囲を持っています。

于 2011-08-01T10:06:33.197 に答える
3

どうですか

long eargb = Long.parseLong(al + re + gre + blu, 2);
于 2011-08-01T10:08:09.803 に答える
1

2 進数が整数サイズを超えました。そのため、この例外が発生します

于 2011-08-01T10:07:03.930 に答える
0

7ヶ月経ちましたが目標回答は記載されていません。また、この質問は検索エンジンをリードしています。上記の主題は真実です。次のように使用する必要があります。

(int)Long.parseLong("11111111111000101000100111111010",2)

eargb =(int)Long.parseLong( al + re + gre + blu, 2);
于 2012-03-24T21:50:17.460 に答える