我是java的新手,我想知道是否有任何方法可以计算单个int的二进制中实际的1和0的数量。例如,我会尝试找出int 6的二进制32位二进制中1和0的数量?
答案 0 :(得分:7)
int ones = Integer.bitCount(n);
int zeros = Integer.bitCount(~n) - Integer.numberOfLeadingZeros(n);
答案 1 :(得分:1)
幸运的是,java有一个内置方法:Integer.toBinaryString() 这需要一个整数值,将其转换为二进制,然后将其作为String返回。
或者你可以了解你的java技能并创建自己的方法来完成它。
答案 2 :(得分:0)
由于你没有提供任何代码,我会给你一些关于你如何做的公会。
int
的二进制代表Integer.toBinaryString(x);
6
的情况下,它将返回110
。但是你需要一个32位的6位表示,所以你必须在该方法返回的结果前添加额外的零。String
的字符,当char == 0
增加零点计数器时。当char == 1
增加计数器时。希望这有帮助