尝试在二进制数中找到1's
(置位)的编号。而我能够得到的结果更小的数字,但是当数字变大,它崩溃,这里是代码:bitCount导致错误,可能的修复?
public class time {
public static void main(String[] args)
{
String a = "1001101111101011011100101100100110111011111011000100111100111110111101011011011100111001100011111010";
int x = Integer.bitCount(Integer.parseInt(a, 2));
System.out.println(x);
}
}
凡a
是100位二进制数的字符串表示现在时我试图让bitCount()
,编译器说:
异常线程 “main” java.lang.NumberFormatException:对于输入字符串 “1001101111101011011100101100100110111011111011000100111100111110111101011011011100111001100011111010”
所以我的的问题是:这样的大数可能的修复程序有什么可以解决的?
注意:我还需要对500位数字进行相同的操作!
谢谢,这是这样做的最好方法?作为另一个答案指向我通过迭代手动计数?你怎么看? – OBX
如果你只对位数感兴趣而没有别的,其他的答案会简单得多。 – Tunaki
我需要对这些数据执行一个'OR'操作,比如说两个100位数字,只有这样我才需要count(),并且用BigInteger代码,我会遇到麻烦,任何帮助都将非常感谢,谢谢。再次为精彩的答案! – OBX