请你帮我找一个方法在二进制字符串的左边添加零,这里我认为可以工作,但它只打印没有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]);
}
}
}
答案 0 :(得分:1)
如果我正确理解了您的问题,只需将bin_nums
从int[]
更改为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