因此,我的老师正在让我们处理for循环,并且我们的作业之一是制作一个for循环,该循环会将任何以2为底的数字更改为以10为底。我将发布到目前为止的操作。我只是在《 AP Computer Science》中,代码看起来很业余。
public long getBaseTen( )
{
long ten=0;
for (int i = 0; i < binary.length()-1; i++)
{
if (binary.charAt(binary.length()-i-1) == '0');
ten += 0;
if (binary.charAt(binary.length()-i-1) == '1');
ten += Math.pow(2, i);
}
return ten;
}
binary是一个字符串变量,其中包含用户先前指定的以2为基数的数字。我需要将此基数2的字符串转换为基数10,并将该数字存储为长十。现在,每当我调用此方法时,根据字符串的长度,我总是得到相同的数字。如果字符串的长度为2个字母,则将始终返回1;如果字符串的长度为3个字母,则将始终返回3;如果字符串的长度为4个字母,则将始终返回7,依此类推。帮助将不胜感激。
您的代码中的问题是您的if语句关闭得很早:
if (binary.charAt(binary.length()-i-1) == '0');
ten += 0;
应该
if (binary.charAt(binary.length()-i-1) == '0'){
ten += 0;
}
当然,还有其他一些事情可以做的不同,但是您会一路弄清楚。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句