T学生,我的老师说代码还可以..但是她问我二进制输入00101怎么变成5.0分。 我真的需要帮助。我不知道如何解释00101 bin如何变成5.0 我尝试了许多计算,如。
5(chararraylength)-3(指数)-1 * math.pow = 4
我无法得到最后一个使我的4进入5.o dec。
的数字char[] charArray = binary.toCharArray();
double answer = 0;
for (double index = 0; index < charArray.length; index++){
if (charArray[(int)index] == '1') {
answer = answer + Math.pow(2.0, (charArray.length - index - 1));
答案 0 :(得分:0)
你使用操作双打的Math.pow()
,这是正常的。
打印(int) answer
或使用此代码:
final int size = charArray.length;
char c;
int answer = 0;
for (int index = size; index > 0; index++) {
if (charArray[index] == '1')
answer++;
answer <<= 1;
}
另请注意,数组索引为int
s,因此您的index
变量应为int。
答案 1 :(得分:0)
我不确定我是否理解你的问题,但这是程序的计算:
00101表示
0 * 2 ^ 4 + 0 * 2 ^ 3 + 1 * 2 ^ 2 + 0 * 2 ^ 1 + 1 * 2 ^ 0
= 0 * 16 + 0 * 8 + 1 * 4 + 0 * 2 + 1 * 1 = 5