Java 如何在不使用API的情况下以不同的形式将八进制转换为十进制?
我试着把八进制转换成十进制,我得到了一些输出,但我不满意。有人能给出一个不使用API-s转换不同模型的想法吗Java 如何在不使用API的情况下以不同的形式将八进制转换为十进制?,java,decimal,octal,Java,Decimal,Octal,我试着把八进制转换成十进制,我得到了一些输出,但我不满意。有人能给出一个不使用API-s转换不同模型的想法吗 public static void main(String args[]){ System.out.print("Enter the number to convert"); Scanner ss =new Scanner(System.in); int a = ss.nextInt(); int b = ss.nextInt(); int c = ss
public static void main(String args[]){
System.out.print("Enter the number to convert");
Scanner ss =new Scanner(System.in);
int a = ss.nextInt();
int b = ss.nextInt();
int c = ss.nextInt();
int d = ss.nextInt();
int temp =(a*(8*8*8));
int temp1 =(b*(8*8));
int temp2 =(c*(8));
int temp3 =(d*(1));
System.out.println("The decimal is " +"\n" + (temp +temp1 +temp2 +temp3))
}
试试这个:
public static void main(String[] args)throws IOException
{
BufferedReader reader =
new BufferedReader(new InputStreamReader(System.in));
String oct = reader.readLine();
int i= Integer.parseInt(oct,8);
System.out.println("Decimal:=" + i);
}
我没试过,但试着弄个逻辑 然后以字符串形式输入
String s ; //for input
String answer ="";
for(a=0,b=s.length-1;b>=0;b--)
{
int digit =Integer.parseInt(s.charAt(a));
int ans = (int)(digit * Math.pow(8,b));
answer+=ans;
a++;
}
也许我的版本是你想要的:
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("Please enter a number: ");
String numberString = sc.nextLine();
int[] eachNumbers = new int[numberString.length()];
for(int i = 0; i < eachNumbers.length; i++){
eachNumbers[i] = Integer.parseInt(numberString.substring(i, i+1));
}
int digit = 0;
for(int i = 0; i < eachNumbers.length; i++){
if(eachNumbers.length > 1){
digit += (eachNumbers[i] * Math.pow(8, eachNumbers.length - (i+1)));
}else{
digit += (eachNumbers[i] * 1);
}
}
System.out.println("The Octal " + numberString + " as Decimal is " + digit);
}
publicstaticvoidmain(字符串[]args){
扫描仪sc=新的扫描仪(System.in);
System.out.println(“请输入一个数字:”);
字符串numberString=sc.nextLine();
int[]eachNumbers=newint[numberString.length()];
for(int i=0;i1){
数字+=(每个数字[i]*数学功率(8,每个数字长度-(i+1));
}否则{
数字+=(每个数字[i]*1);
}
}
System.out.println(“八进制”+数字字符串+”作为十进制是“+数字);
}
我知道有很多方法可以改进,但我仍在学习,希望能帮助您:)检查扫描仪。nextInt()方法将读取整数,而不是数字。