Heim  >  Artikel  >  Java  >  Hexadezimal in Oktal in Java umwandeln?

Hexadezimal in Oktal in Java umwandeln?

WBOY
WBOYnach vorne
2023-08-19 13:37:051211Durchsuche

Hexadezimal in Oktal in Java umwandeln?

Oktalzahl − Die Oktalzahl ist ebenfalls eines der verfügbaren Zahlensysteme. Die Oktalzahl wird mit 8 Ziffern dargestellt, die von 0 bis 7 reichen (0, 1, 2, 3 ... 7). Die Oktalzahlen werden im Zahlensystem als Basis 8 ausgedrückt.

Hexadezimalzahl − Hexadezimalzahlen sind ebenfalls eines der verfügbaren Zahlensysteme. Die Hexadezimalzahl wird mit 16 Ziffern dargestellt, die von 0 bis 15 reichen (0, 1, 2, 3 ... 15). Von 10 bis 15 wird es als A bis F dargestellt. Die Hexadezimalzahlen werden im Zahlensystem als Basis 16 ausgedrückt.

Hier wandeln wir zunächst die Hexadezimalzahlen in Binärzahlen um, wobei wir für jede Ziffer die Binärzahlenkombination aus vier Ziffern erhalten. Nachdem wir alle diese Binärziffern erhalten haben, verketten wir alle diese Ziffern und müssen dann die gesamte Menge der Binärzahlen in Spannen aufteilen, in denen jeder Teil aus drei Ziffern besteht. Dann können wir diese Mengen von Binärzahlen in Oktalzahlen umwandeln. Auf diese Weise wandeln wir die Hexadezimalzahl in eine Oktalzahl um.

Auf andere Weise ermitteln wir nach Erhalt des Dezimalwerts kontinuierlich den Modul durch 8 Werte und können dann durch Verkettung dieser Werte den entsprechenden Oktalwert erhalten.

让我们看看如何使用Java编程语言来完成这个任务.

Um Ihnen einige Beispiele zu zeigen

Instance-1

的中文翻译为:

实例-1

Die Hexadezimalzahl ist 9AD

Der dezimal umgerechnete Wert davon = 2477

Jetzt ist der Oktalwert von 2477 = 4655

Instance-2

的中文翻译为:

实例-2

Die eingegebene Hexadezimalzahl ist 219A

Der dezimal umgerechnete Wert = 8602

现在8602的八进制值为20632

Instance-3

的中文翻译为:

实例-3

Die Hexadezimalzahl ist 21AD45

它的十进制转换值 = 2207045

现在2207045的八进制值为10326505

算法

Schritt 1 - Erhalten Sie die Eingabenummer als Zeichenfolgentyp entweder über die statische Eingabemethode oder die Benutzereingabemethode.

Schritt 2 − Mithilfe einiger Schalterfälle definieren wir den entsprechenden Dezimalwert jeder Ziffer der gegebenen Hexadezimalzahl.

第三步 - 在获得十进制值后,我们通过不断地找到8的模数值并连接它们来将其转换为适当的八进制值.

Schritt 4 − Am Ende drucken wir den berechneten Oktalwert als Ausgabe aus.

Mehrere Ansätze

Wir haben die Lösung in verschiedenen Ansätzen bereitgestellt.

  • 通过使用静态输入值

  • 通过用户定义的方法

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

途径-1:通过使用静态输入值

在这种方法中,我们通过静态输入方法声明一个十六进制输入数字,通过使用算法,我们可以将十六进制数字转换为八进制数字.

Beispiel

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 + ".");
   }
}

Ausgabe

The Octal Value of 87FA is 103772.

Ansatz 2: Durch Verwendung einer benutzerdefinierten Methode

Bei diesem Ansatz deklarieren wir eine hexadezimale Eingabezahl durch eine statische Eingabemethode und übergeben diese Zahlen als Parameter in einer benutzerdefinierten Methode. Anschließend können wir innerhalb der Methode mithilfe des Algorithmus die Hexadezimalzahl in eine Oktalzahl umwandeln.

Beispiel

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 + ".");
   }
}

Ausgabe

The Octal Value of 6FE4 is 67744.

In diesem Artikel haben wir untersucht, wie man in Java mithilfe verschiedener Ansätze eine Hexadezimalzahl in eine Oktalzahl umwandelt.

Das obige ist der detaillierte Inhalt vonHexadezimal in Oktal in Java umwandeln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen