可能重复:
十进制转换错误
我正在为一个班级编写一个程序,并且无法弄清楚如何将八进制数转换为十进制数。到目前为止,这是我一直在尝试做的事情:
import java.util.Scanner;
public class test
{
public static void main ( String args[])
{
Scanner input = new Scanner(System.in);
System.out.print("Enter number: ");
int oct = input.nextInt();
int d2count = 0;
int result=0;
int d3count = 0;
int d3 = 0;
int d2 = 0;
d3 = oct;
d2 = oct;
if(oct < 1000){
while ( d3 >= 100){
d3 = d3 - 100;
d3count++;
}}
if (oct < 100){
while ( d2 >= 10){
d2 = d2 - 10;
d2count++;
}}
result = (d3count * 64)+(d2count * 8) + d2;
System.out.printf("%d\n",result);
}
}
所以基本上我需要一种方法将数字减少到个位数(即 1337 到 1、3、3、7)。我真的很想用我现在拥有的东西来做,但是我的做事方式似乎有一些我看不到的错误。如果我输入一个小于 100 的数字,它实际上可以工作,但是当我输入一个大于 100 的数字时,转换会在某处搞砸。我是java新手,所以技术越基础越好,谢谢