我正在编写一个二进制补码程序,其中我使用数组将十进制转换为二进制。我也想拥有8位二进制文件。
例如,因为22是二进制的10110,所以我想用零填充数组的其余部分,但是我找不到方法。
感谢您的帮助。
编辑:
static void toBin(int number){
int[] bin = new int[8];
int i =0;
while (number > 0){
bin[i] = number % 2;
number = number/2;
i++;
}
// Here is where I would like to add zeros if the size of the array is below 0
for (int j = i-1; j>=0;j--){
System.out.println(bin[j]); //Array gets reserved
}
}
答案 0 :(得分:1)
有一个名为“ Arrays” 的类,该类具有名为“ fill()” 的方法。
语法为“ Arrays.fill()” 。
在圆括号内,在“ fill” 之后,您必须输入将填充数组其余部分的值。
下面的示例将索引从0到5(不包含6)的元素填充为值1。
int[] intArray = new int[8];
Arrays.fill(ints2, 0, 6, 1) ;
System.out.println(Arrays.toString(intArray));
以下是输出:
[1, 1, 1, 1, 1, 1, 0, 0]
答案 1 :(得分:0)
创建数组时,数组会以零初始化。您只需将所需的数字更改为1,其余数字将保持为零。尝试从第8位开始填充数组,然后递减计数器,以便您可以到达最左位。
答案 2 :(得分:0)
首先初始化整个字符串并保留一些空间,例如八个字符。
String binaryStr = "00000000";
for (int i = 0; i < binaryStr.Length (); i++)
{
if (binaryShouldBeOne)
{
binaryStr[i] = '1';
} else
{
binaryStr[i] = '0';
}
}
答案 3 :(得分:0)
这可能有帮助。
int out[] = new int[8];
int in = 22;
int i = out.length - 1;
while (i >= 0 && in > 0) {
out[i] = in % 2;
in /= 2;
i--;
}
for (int j = 0; j < out.length; j++) {
System.out.print(out[j] + " ");
}
System.out.println("");
答案 4 :(得分:0)
看下面的代码:
int number =22;
int bits[]= new int[8];
for(int i=0;i<=7;i++){
if(number>0){
bits[7-i]=number%2;
number/=2;
}
else{
bits[7-i]=0;
}
}
for(int i=0;i<=7;i++){
System.out.print(bits[i]);
}
我想,我已经解决了您的问题。