Java 将十六进制转换为八进制

Java 将十六进制转换为八进制

八进制数字 - 八进制数字也是一种可用的数字系统之一。八进制数字由0到7(0, 1, 2, 3… 7)表示。八进制数字在数字符号中表示为基8。

十六进制数字 - 十六进制数字也是一种可用的数字系统之一。十六进制数字由0到15(0, 1, 2, 3… 15)表示。从10到15,它表示为A到F。十六进制数字在数字符号中表示为基16。

在这里,我们首先将十六进制数字转换为二进制数字,其中每个数字的二进制数字组合有四个数字。在获取所有这些二进制数字后,我们将所有这些数字拼接在一起,然后我们将整个二进制数字集合分割成块,其中每一部分由三个数字组成。然后我们可以将这些二进制数字集合转换为八进制数字。通过这种方式,我们将十六进制数字转换为八进制数字。

另一种方式是在获取十进制值后,我们不断通过8的值找到余数,然后通过连接这些值,我们可以得到适当的八进制值。

让我们看看如何使用Java编程语言来实现这个。

为了向您展示一些实例

实例-1

输入的十六进制数字是9AD

它的十进制转换值= 2477

现在2477的八进制值= 4655

实例-2

输入的十六进制数字是219A

它的十进制转换值= 8602

现在8602的八进制值= 20632

实例-3

输入的十六进制数字是21AD45

它的十进制转换值= 2207045

现在2207045的八进制值= 10326505

步骤

步骤1 - 将输入数字作为字符串类型获取,可以使用静态输入方法或用户输入方法。

步骤2 - 使用一些开关语句,定义给定十六进制数字的每个数字的适当十进制值。

步骤3 - 在获取十进制值后,通过不断查找8的值的余数并连接它们,将其转换为适当的八进制值。

步骤4 - 最后,我们将计算得到的八进制值打印为输出。

多种方法

我们以不同的方式提供了解决方案。

  • 通过使用静态输入值
  • 通过用户定义方法

让我们逐个看程序及其输出。

方法1:通过使用静态输入值

在这种方法中,我们通过静态输入方式声明一个十六进制的输入数,并且利用算法将十六进制数转换为八进制数。

示例

public class Main{
   public static void main(String[] args){

      //declare a variable to store the decimal number
      int decimalNumber = 0;

      //Declare and store a hexadecimal number by static input method.
      String hexadecimalNumber = "87FA";
      int a = hexadecimalNumber.length() - 1;

      //Loop to find the appropriate decimal number of given hexadecimal number
      for(int i = 0; i < hexadecimalNumber.length() ; i ++ ){

         //extract the character from the string.
         char c = hexadecimalNumber.charAt(i);
         switch (c){
            case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8':
            case '9':
               decimalNumber = decimalNumber + Integer.parseInt(Character.toString(c))*(int)Math.pow(16,a);
               a--; break;
            case 'a': case 'A':
               decimalNumber = decimalNumber + 10 * (int)Math.pow(16, a);
               a--; break;
            case 'b': case 'B':
               decimalNumber = decimalNumber + 11 * (int)Math.pow(16, a);
               a--; break;
            case 'c': case 'C':
               decimalNumber = decimalNumber + 12 * (int)Math.pow(16, a);
               a--; break;
            case 'd': case 'D':
               decimalNumber = decimalNumber + 13 * (int)Math.pow(16, a);
               a--;
               break;
            case 'e': case 'E':
               decimalNumber = decimalNumber + 14 * (int)Math.pow(16, a);
                a--; break;
            case 'f': case 'F':
               decimalNumber = decimalNumber + 15 * (int)Math.pow(16, a);
               a--; break;
            default:
            System.out.println("The number you have entered is invalid."); break;
         }
      }
      String octalNumber ="";// declare a variable to store the octal number in string format.

      //initiate the loop to convert decimal number into octal number.
      while(decimalNumber > 0){
         octalNumber = decimalNumber % 8 + octalNumber;
         decimalNumber = decimalNumber / 8;
      }
      System.out.println("The Octal Value of "+ hexadecimalNumber + " is " + octalNumber + ".");
   }
}

输出

The Octal Value of 87FA is 103772.

方法2:使用用户自定义方法

在这种方法中,我们通过静态输入方法声明一个十六进制输入数,并将这些数作为参数传递给一个用户自定义的方法,然后在方法内部,通过使用算法,我们可以将十六进制数转换为八进制数。

示例

public class Main{
   public static void main(String[] args){
      String inputNumber = "6FE4";//Declare and store a hexadecimal number by static input method.
      hexToOct(inputNumber);//call the user defined method to convert given hexadecimal number into octal.
   }
   //user defined method to convert the hexadecimal number into octal number
   public static void hexToOct(String hexadecimalNumber){
      int decimalNumber = 0;//declare a variable to store the decimal number
      int a = hexadecimalNumber.length() - 1;
      //Loop to find the appropriate decimal number of given hexadecimal number
      for(int i = 0; i < hexadecimalNumber.length() ; i ++ ){
         //extract the character from the string.
         char c = hexadecimalNumber.charAt(i);
         switch (c){
            case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8':
            case '9':
               decimalNumber = decimalNumber + Integer.parseInt(Character.toString(c))*(int)Math.pow(16,a);
               a--; break;
            case 'a': case 'A':
               decimalNumber = decimalNumber + 10 * (int)Math.pow(16, a);
               a--; break;
            case 'b': case 'B':
               decimalNumber = decimalNumber + 11 * (int)Math.pow(16, a);
               a--; break;
            case 'c':
               decimalNumber = decimalNumber + 12 * (int)Math.pow(16, a);
               a--; break;
            case 'd': case 'D':
               decimalNumber = decimalNumber + 13 * (int)Math.pow(16, a);
               a--; break;
            case 'e': case 'E':
               decimalNumber = decimalNumber + 14 * (int)Math.pow(16, a);
               a--; break;
            case 'f': case 'F':
               decimalNumber = decimalNumber + 15 * (int)Math.pow(16, a);
               a--; break;
            default:
               System.out.println("The number you have entered is invalid."); break;
         }
      }
      String octalNumber ="";// declare a variable to store the octal number in string format.
      //initiate the loop to convert decimal number into octal number.
      while(decimalNumber > 0){
         octalNumber = decimalNumber % 8 + octalNumber;
         decimalNumber = decimalNumber / 8;
      }
      System.out.println("The Octal Value of "+ hexadecimalNumber + " is " + octalNumber + ".");
   }
}

输出

The Octal Value of 6FE4 is 67744.

在本文中,我们探讨了如何使用不同的方法将十六进制数转换为八进制数的Java编程。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程