在二进制字符串的左侧添加零 - Java

Add zeros to the left of binary string - Java

你能帮我找到一种在二进制字符串左侧添加零的方法吗?这是我认为可行的方法,但它只打印不带 0 的二进制文件。

package flipping_bits;
import java.io.*;
import java.util.*;

public class Solution {

public static void main(String[] args) {
    Scanner input = new Scanner(System.in);

    int cases = input.nextInt();        //Número de casos

    int[] dec_nums=new int[cases];      //Arreglo contenedor de casos
    for (int i=0;i<cases;i++){
        dec_nums[i]=input.nextInt();    //Almacenamiento de casos
    }

    int[] bin_nums=new int[cases];  //Arreglo con dec-bin
    for (int i=0;i<cases;i++){              
        bin_nums[i]=Integer.parseInt(String.format("%032d",(Integer.parseInt(Integer.toBinaryString(dec_nums[i]))))); //Convertir cada decimal en el arreglo a binario
    }


    //Imprimir binarios
    for (int i=0; i<cases;i++){
        System.out.println(bin_nums[i]);
    }

}
}

在数组中的每个二进制数前添加 0,示例如下:

bin_num[0] = 这个二进制数 updatedNumber = '0' + thisBinarynumber

如果我正确理解你的问题,只需将 bin_numsint[] 更改为 String[] 并且不要解析你格式化的整数,你最终会得到一个整数的 32 位表示

public static void main(String[] args) {


    Scanner input = new Scanner(System.in);

    int cases = input.nextInt();        //Número de casos

    int[] dec_nums=new int[cases];      //Arreglo contenedor de casos
    for (int i=0;i<cases;i++){
        dec_nums[i]=input.nextInt();    //Almacenamiento de casos
    }

    String[] bin_nums=new String[cases];  //Arreglo con dec-bin
    for (int i=0;i<cases;i++){              
        bin_nums[i]=(String.format("%032d",(Integer.parseInt(Integer.toBinaryString(dec_nums[i]))))); //Convertir cada decimal en el arreglo a binario
    }


    //Imprimir binarios
    for (int i=0; i<cases;i++){
        System.out.println(bin_nums[i]);
    }

}

这是我的测试用例,结果为:

3
1
2
3
00000000000000000000000000000001
00000000000000000000000000000010
00000000000000000000000000000011

但是假设您可能正在尝试解决一些通常需要您以最佳方式解决的算法问题,这可能无法解决问题并且可能会超过时间限制。

由于 class 命名为 Solution 和代码风格,这似乎是一个练习,例如:测试用例,测试用例数量 ...