【问题标题】:Counting the binary in a number java?在数字java中计算二进制?
【发布时间】:2014-09-23 20:56:50
【问题描述】:

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

【问题讨论】:

  • 以与您知道的任何其他语言相同的方式执行此操作,并将逻辑包装在类中的 main() 中。
  • 查看stackoverflow.com/a/5263199/3802841 了解如何将 int 格式化为字符串。计算 '0' 或 '1' 并从字符串的长度中减去计数。

标签: java binary


【解决方案1】:

使用Integer.bitcount(int)

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

【讨论】:

  • 很好地给出了答案。对 OP 有很大帮助
  • 太棒了。谁会想到他们已经实现了这个? docs.oracle.com/javase/7/docs/api/java/lang/…
  • @xgeorgekx 回答问题做得好吗?谢谢。
  • @xgeorgekx:除了你的,你会否决所有答案?真的吗?
  • 我没有看到任何建设性的答案。任何人都可以粘贴代码。
【解决方案2】:

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

或者您可以重温您的 Java 技能并创建自己的方法来完成它。

【讨论】:

    【解决方案3】:

    由于您没有提供代码,我将提供一些关于如何做到这一点的规范。

    1. 通过调用此方法Integer.toBinaryString(x); 获取int 的二进制表示
    2. 前面的方法将只返回数字的必要位,例如在6 的情况下,它将返回110。但是您需要 6 的 32 位表示,因此您必须在该方法返回的结果前面添加额外的零。
    3. 创建 2 个计数器变量。一个代表一,一个代表零。
    4. 循环遍历String 的字符,当char == 0 增加零计数器时。当char == 1 增加个数时。

    希望对你有帮助

    【讨论】:

    • 为什么要在int 内的位就在那里 时转换为String
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-23
    • 2019-04-23
    • 2015-08-31
    • 2021-12-27
    • 2011-01-25
    • 2014-01-16
    • 1970-01-01
    相关资源
    最近更新 更多