gpt4 book ai didi

java - 为什么我的八进制到十进制转换器在某些情况下不起作用?

转载 作者:行者123 更新时间:2023-11-29 05:00:48 27 4
gpt4 key购买 nike

我正在研究这个八进制到十进制的转换器:

public int getDecimal(String input)
{
int output = 0;

// reverse input so that it is easier to work with
input = new StringBuilder(input).reverse().toString();

for (int c = 0; c < input.length(); c++)
{
// check for invalid digit
if (input.charAt(c) < '0' || input.charAt(c) > '7')
return 0;

if (input.charAt(c) != '0')
{
if (input.charAt(c) == '1')
output += Math.pow(8, c);
else // if it's greater than 1
output += Math.pow(8, c) + input.charAt(c) - 1;
}
}

return output;
}

它适用于大约 65% 的测试用例,例如将“10”转换为“8”。但是,它不适用于其他情况,例如将“17”转换为“15”。我做错了什么?

最佳答案

你的公式是错误的。

你在这条线上做什么,

output += Math.pow(8, c) + input.charAt(c) - 1;

应该更像是,

output += Math.pow(8, c) * (input.charAt(c) - '0');

比如,output += 8^(index) * digit

关于java - 为什么我的八进制到十进制转换器在某些情况下不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32174375/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com