我正在尝试以二进制形式打印 Long,但它总是被切断0
的。有没有办法强制它显示所有位?
这是我的代码:
long l = 1;
System.out.println(Long.toBinaryString((long)l));
仅按提及的方式返回1
由于删除了0
我希望维持:
0000 0000 0000 0000 0000 0000 0000 0001
提前致谢。
我的临时令人讨厌的解决方案:
public String fillZeros(Long value)
{
String str = Long.toBinaryString((long) value);
String temp;
temp = str;
while(temp.length() < 32) {
temp = "0" + temp;
}
return temp;
}
你可以这样做
for(int i = 0; i < Long.numberOfLeadingZeros((long)l); i++) {
System.out.print('0');
}
System.out.println(Long.toBinaryString((long)l));
这将得到你想要的东西,除了每 4 个数字之间没有空格(不过你应该能够编码)。可能有一种方法可以自动执行此操作格式化程序 http://docs.oracle.com/javase/6/docs/api/java/util/Formatter.html但我找不到它。
Edit:
您可以使用String's
如果您知道所需的 0 数量(我忘记将其改回数字,这将修复异常),请使用 format 方法。
String.format("%032d", new BigInteger(Long.toBinaryString((long)l)));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)