我想将一个字符串(二进制数字)转换为Integer
,如下所示:
Integer.parseInt("011000010110")
我总是得到NumberFormatException
。数字位数是否过高?
答案 0 :(得分:8)
是的,字符串"011000010110"
大约为110亿,高于可表示的最大值int
,Integer.MAX_VALUE
, 2,147,483,647。尝试
Long.parseLong("011000010110")
或者,如果您将其视为二进制,则将基数2传递给parseInt
:
Integer.parseInt("011000010110", 2)
答案 1 :(得分:0)
所有Java的数字类都是基数10.但是,我在这里找到了这两个选项:
working with binary numbers in java
BitSet类,或将int声明为二进制数(Java 7+)的方法。后者可能不适合您,具体取决于您获得这些数字的方式。