次の問題があります:
一部のバイナリ文字列を整数に変換したい:
eargb = Integer.parseInt(al + re + gre + blu, 2);
しかし、次の例外が発生します。なんで?
java.lang.NumberFormatException: For input string: "11111111111000101000100111111010"
数値 (4,293,036,538) は大きすぎて、signed int (-2,147,483,648 から 2,147,483,647 の範囲) に収まりません。
代わりに long を使用してみてください。これはより広い範囲を持っています。
どうですか
long eargb = Long.parseLong(al + re + gre + blu, 2);
2 進数が整数サイズを超えました。そのため、この例外が発生します
7ヶ月経ちましたが目標回答は記載されていません。また、この質問は検索エンジンをリードしています。上記の主題は真実です。次のように使用する必要があります。
(int)Long.parseLong("11111111111000101000100111111010",2)
eargb =(int)Long.parseLong( al + re + gre + blu, 2);