用java计算二进制数?
我是java新手,想知道是否有任何方法可以计算单个int的二进制中1和0的实际数量。例如,我会尝试找出int 6的二进制32位二进制中1和0的数量?,因为您没有提供代码,所以我将给出一些关于如何做到这一点的指南用java计算二进制数?,java,binary,Java,Binary,我是java新手,想知道是否有任何方法可以计算单个int的二进制中1和0的实际数量。例如,我会尝试找出int 6的二进制32位二进制中1和0的数量?,因为您没有提供代码,所以我将给出一些关于如何做到这一点的指南 通过调用此方法Integer.toBinaryString(x),获取int的二进制表示形式 前面的方法将仅返回数字的nessecery位,例如在6的情况下,它将返回110。但是您需要一个32位的6表示,因此您必须在该方法返回的结果前面添加额外的零 创建2个计数器变量。一个代表一,一个代
Integer.toBinaryString(x),获取int
的二进制表示形式代码>
6
的情况下,它将返回110
。但是您需要一个32位的6表示,因此您必须在该方法返回的结果前面添加额外的零字符串的字符,当char==0
时,递增零计数器。当char==1时
递增“一”计数器
幸运的是,java有一个内置方法:Integer.tobinarysting() 这将获取一个整数值,将其转换为二进制,然后将其作为字符串返回
或者,您也可以学习java技能,并创建自己的方法来实现它 使用您所知道的任何其他语言,以相同的方式进行操作,并将逻辑封装在类中的
main()
。有关如何将int格式化为字符串的信息,请参阅。对“0”或“1”进行计数,并从字符串长度中减去计数。给出答案做得很好。对奥帕维索姆的帮助很大。谁会想到他们已经实施了这个@xgeorgekx回答这个问题做得好吗?谢谢你。@xgeorgekx:除了你的答案,你会否决所有答案吗?真的吗?我没有看到任何建设性的答案。任何人都可以粘贴代码。为什么要转换为字符串
,而位就在int
中?
int ones = Integer.bitCount(n);
int zeros = Integer.bitCount(~n) - Integer.numberOfLeadingZeros(n);