读书人

找到64位整数的二进制中1的个数

发布时间: 2012-12-16 12:02:32 作者: rapoo

找出64位整数的二进制中1的个数
这个题怎么做?
看了很多,可就是没看明白。
怎么表示一个64位的十进制整数?
具体怎么实现找到转换后的二进制中1的个数?
[最优解释]
BigInteger 理论上可以表示无穷位。

其实我理解所谓64位的数,也许不是指 十进制有64个数字;
估计是表示 64位二进制数,那么long就是64位的,当然符号位会浪费 1位,剩63位。
[其他解释]
偷懒就用 BigInteger

toString(2) 就可以得到完整二进制
[其他解释]
反复除2取余数
[其他解释]
我想用自己写算法来实现。如果要用别人的,java中有将十进制转二进制的方法,然后再查找二进制中1的个数,确实可以。
想了解一下实现原理,
[其他解释]
试试这个.


long num=10000000L;
int total=Long.bitCount(num);

[其他解释]
引用:
反复除2取余数
没错,是这样。还有一点这个64位的数怎么表示?BigInteger和BigDecimal分别可以表示多少位?

读书人网 >J2SE开发

热点推荐