原文: https://beginnersbook.com/2019/04/java-octal-to-decimal-conversion/

在本文中,我们将看到如何在 Java 中借助示例将八进制转换为十进制。

我们可以通过两种方式将八进制值转换为等效的十进制值:

  1. 使用Integer.parseInt()方法并将基数传递为 8。
  2. 编写我们自己的自定义方法(逻辑)进行转换八进制到十进制。

1. 使用Integer.parseInt()进行 Java 八进制到十进制转换

在下面的示例中,我们将八进制值存储在字符串变量onum中,并使用Integer.parseInt()方法将其转换为十进制值。此方法接受String作为参数,并根据作为参数提供的基本值将其转换为十进制值。

Integer.parseInt()方法中,我们将基数传递为 8,因为八进制数的基值是 8。如果你记得十六进制到十进制转换,我们有传递基数为 16 进行转换。

  1. public class JavaExample{
  2. public static void main(String args[]) {
  3. //octal value
  4. String onum = "157";
  5. //octal to decimal using Integer.parseInt()
  6. int num = Integer.parseInt(onum, 8);
  7. System.out.println("Decimal equivalent of Octal value 157 is: "+num);
  8. }
  9. }

输出:

Java 程序:八进制到十进制的转换 - 图1

在上面的例子中,我们对八进制值进行了硬编码,但是如果你想从用户获得八进制值,那么你可以像这样编写逻辑:

  1. import java.util.Scanner;
  2. public class JavaExample{
  3. public static void main(String args[]) {
  4. //octal value
  5. Scanner scanner = new Scanner(System.in);
  6. System.out.print("Enter Octal value: ");
  7. String onum = scanner.nextLine();
  8. scanner.close();
  9. //octal to decimal using Integer.parseInt()
  10. int num = Integer.parseInt(onum, 8);
  11. System.out.println("Decimal equivalent of value "+onum+" is: "+num);
  12. }
  13. }

输出:

  1. Enter Octal value: 142
  2. Decimal equivalent of value 142 is: 98

2. 通过编写自定义代码将八进制转换为十进制

在上面的例子中,我们使用Integer.parseInt()方法进行转换,但是我们可以编写自己的逻辑将八进制值转换为等效的十进制值。让我们编写代码:这里我们使用了while循环if..else语句

  1. public class JavaExample{
  2. public static int octalToDecimal(int onum){
  3. //initializing the decimal number as zero
  4. int num = 0;
  5. //This value will be used as the power
  6. int p = 0;
  7. while(true){
  8. if(onum == 0){
  9. break;
  10. } else {
  11. int temp = onum%10;
  12. num += temp*Math.pow(8, p);
  13. onum = onum/10;
  14. p++;
  15. }
  16. }
  17. return num;
  18. }
  19. public static void main(String args[]){
  20. System.out.println("Decimal equivalent of octal value 143: "+octalToDecimal(143));
  21. }
  22. }

输出:

Java 程序:八进制到十进制的转换 - 图2