我正在编写一个二进制补码程序,我使用数组将十进制转换为二进制。我也想要 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 }}
3 回答
猛跑小猪
TA贡献1858条经验 获得超8个赞
有一个名为“Arrays”的类,它有一个名为“fill()”的方法。
语法是"Arrays.fill()"。
在圆括号内,在"fill" 之后,您必须放置将填充数组其余部分的值。
下面的示例用值 1 填充索引从 0 到 5(没有 6)的元素。
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]
慕森王
TA贡献1777条经验 获得超3个赞
看看这段代码:
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]);
}
我想,我已经解决了你的问题。
梵蒂冈之花
TA贡献1900条经验 获得超5个赞
数组在创建时用零初始化。您只需将所需的数字更改为 1,其余数字将保持为零。尝试从第 8 位开始填充数组,然后递减您的计数器,以便您可以到达最左边的数字。
添加回答
举报
0/150
提交
取消