就像标题所说,我做了一个小函数,从用户字符串1和0取出,输出应该是它的十进制数,但由于某种原因我得到了错误的答案,希望你能帮我找到问题.
public class ToDecimal{
public static void main(String[] args){
String string = args[0];
int length = string.length();
int power = length - 1;
int decimal = 0;
while(length > 0){
if (string.charAt(length - 1) == '1'){
decimal = decimal + (int)(Math.pow(2, length - 1));
} else if (string.charAt(length - 1) == '0'){
} else {
System.out.println("Wrong string spelling...");
}
length--;
}
System.out.println(decimal);
}
Run Code Online (Sandbox Code Playgroud)
}
您以向后的顺序应用指数.也就是说,在第一个循环中,您查看最后一个字符,但应用最大的指数length - 1,并且第一个字符获得指数0.
使用power的指数,而不是length - 1和增量power在结束while循环.
decimal = decimal + (int)(Math.pow(2, power));
Run Code Online (Sandbox Code Playgroud)
和
length--;
power++;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
52 次 |
| 最近记录: |