填充数组的其余部分

时间:2018-10-21 15:53:32

标签: java arrays binary

我正在编写一个二进制补码程序,其中我使用数组将十进制转换为二进制。我也想拥有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
    }
}

5 个答案:

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

我想,我已经解决了您的问题。