计算java中的二进制数?

时间:2014-09-23 20:56:50

标签: java binary

我是java的新手,我想知道是否有任何方法可以计算单个int的二进制中实际的1和0的数量。例如,我会尝试找出int 6的二进制32位二进制中1和0的数量?

3 个答案:

答案 0 :(得分:7)

使用Integer.bitcount(int)

int ones = Integer.bitCount(n);
int zeros = Integer.bitCount(~n) - Integer.numberOfLeadingZeros(n);

答案 1 :(得分:1)

幸运的是,java有一个内置方法:Integer.toBinaryString() 这需要一个整数值,将其转换为二进制,然后将其作为String返回。

或者你可以了解你的java技能并创建自己的方法来完成它。

答案 2 :(得分:0)

由于你没有提供任何代码,我会给你一些关于你如何做的公会。

  1. 通过调用此方法获取int的二进制代表Integer.toBinaryString(x);
  2. 前一种方法只返回数字的nessecery位,例如在6的情况下,它将返回110。但是你需要一个32位的6位表示,所以你必须在该方法返回的结果前添加额外的零。
  3. 创建2个计数器变量。一个用于一个,一个用于零。
  4. 循环浏览String的字符,当char == 0增加零点计数器时。当char == 1增加计数器时。
  5. 希望这有帮助