【发布时间】:2016-07-10 05:02:15
【问题描述】:
我的任务是将 JLabel 数组中的二进制转换为十进制,而不使用预先编写的方法(没有用户输入)。我有正确的想法,但由于某种原因,输出总是有点偏离。我已经经历了无数次,但我找不到我的算法有什么问题,而且我很困惑为什么它不能产生正确的答案。如果有人可以帮助我,我将不胜感激。谢谢!
旁注:我已经阅读过关于二进制到十进制转换的类似讨论主题,但我不明白如何使用数组进行操作。
这是我的代码的 sn-p:
private void convert()
{
int[] digit = new int[8]; //temporary storage array
int count = 0;
for(int x = 0; x < digit.length; x++)
{
digit[x] = Integer.parseInt(bits[x].getText()); //bits is the original array
count= count + digit[digit.length - 1 - x] * (int)(Math.pow(2, x));
}
label.setText("" + count);
}
【问题讨论】:
-
digit[] 是否存储二进制数的位数?计数有什么作用?
-
@ProgyadeepMoulik 在数组的每个单元格中都有一个 1 或一个 0,因此程序会将每个位值转换为十进制并将其全部加起来。 Count 会跟踪该总和。是的, digit[] 存储二进制数的数字。每个单元格一个数字,我的程序的另一部分确保它始终是随机的 0 或 1。
标签: java arrays binary decimal