Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/184.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将大整数转换为二进制JAVA_Java_Android - Fatal编程技术网

如何将大整数转换为二进制JAVA

如何将大整数转换为二进制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

我正在尝试将int转换成二进制,我正在做下面的代码

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);