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

时间:2016-11-28 21:38:24

标签: java binary pad

请你帮我找一个方法在二进制字符串的左边添加零,这里我认为可以工作,但它只打印没有0的二进制文件。< / p>

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

}
}

2 个答案:

答案 0 :(得分:1)

如果我正确理解了您的问题,只需将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

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

这似乎是一个练习,因为名为Solution的类和代码的样式,例如:测试用例,测试用例的数量......

答案 1 :(得分:0)

使用以下示例在数组中的每个二进制数前面添加0:

bin_num [0] = thisBinarynumber updatedNumber ='0'+ thisBinarynumber