我有以下问题:
我想将一些二进制字符串转换为整数:
eargb = Integer.parseInt(al + re + gre + blu, 2);
但我得到以下异常。为什么?
java.lang.NumberFormatException: For input string: "11111111111000101000100111111010"
您的数字 (4,293,036,538) 太大而无法放入带符号的 int(范围为 -2,147,483,648 到 2,147,483,647)中。
尝试使用 long 代替。这个范围更大。
怎么样
long eargb = Long.parseLong(al + re + gre + blu, 2);
您的二进制数超出了整数大小。这就是为什么你得到这个例外
已经 7 个月了,但尚未描述目标答案。这个问题也在搜索引擎中处于领先地位。上述题目属实。你应该使用如下:
(int)Long.parseLong("11111111111000101000100111111010",2)
eargb =(int)Long.parseLong( al + re + gre + blu, 2);