如何将大整数转换为二进制JAVA
我正在尝试将int转换成二进制,我正在做下面的代码如何将大整数转换为二进制JAVA,java,android,Java,Android,我正在尝试将int转换成二进制,我正在做下面的代码 public static String intToBinary16Bit(String strInt) { String bin = Integer.toBinaryString(strInt); return String.format("%016d", Integer.parseInt(bin)); } 因此,如果我给出的是strInt=0211,那么它工作正常并给出了输出 00000010000
public static String intToBinary16Bit(String strInt) {
String bin = Integer.toBinaryString(strInt);
return String.format("%016d", Integer.parseInt(bin));
}
因此,如果我给出的是strInt=0211
,那么它工作正常并给出了输出
000000100001001
但是,如果我给出的是strInt=4527
,那么它就会抛出NumberFormateException
如何解决此问题?尝试以下方法,它使用递归进行转换
private static void toBinary(int number) {
int remainder;
if (number <= 1) {
System.out.print(number);
return;
}
remainder = number % 2;
toBinary(number >> 1);
System.out.println(remainder);
}
private static void toBinary(整数){
整数余数;
如果(数量>1);
系统输出打印项次(余数);
}
试试:
公共A类{
公共静态void main(字符串[]args){
inta=Integer.parseInt(args[0]);
系统输出打印项次(a);
int位=1;
对于(int i=0;i您可以尝试:
Long.toBinaryString(2199023255552L);
您的代码无法编译。Integer.toBinaryString()
需要一个int作为参数,而不是StringIt正在工作,但它仅以12位显示。您能告诉我如何将其格式化为16位吗?只需检查字符串中余数的长度和前缀0
。就是这样。
Long.toBinaryString(2199023255552L);