Rumah  >  Artikel  >  Java  >  Tukar perenambelasan kepada perlapanan dalam Jawa?

Tukar perenambelasan kepada perlapanan dalam Jawa?

WBOY
WBOYke hadapan
2023-08-19 13:37:051214semak imbas

Tukar perenambelasan kepada perlapanan dalam Jawa?

Nombor Oktal − Nombor Oktal juga merupakan salah satu sistem nombor yang ada. Nombor perlapanan diwakili dengan 8 digit iaitu dari 0 hingga 7(0, 1, 2, 3... 7). Nombor Oktal dinyatakan sebagai asas-8 dalam sistem angka.

Nombor Heksadesimal − Nombor perenambelasan juga merupakan salah satu sistem nombor yang ada. Nombor Heksadesimal diwakili dengan 16 digit iaitu dari 0 hingga 15(0, 1, 2, 3... 15). Daripada 10 hingga 15 ia diwakili sebagai A hingga F. Nombor perenambelasan dinyatakan sebagai asas-16 dalam sistem angka.

Di sini kita mula-mula menukar nombor heksadesimal kepada nombor perduaan, di mana kita mendapat gabungan nombor perduaan empat digit untuk setiap digit. Selepas mendapat semua digit binari itu, kami menggabungkan semua digit tersebut kemudian kami perlu membahagikan keseluruhan set nombor binari kepada chuck di mana setiap bahagian terdiri daripada tiga digit. Kemudian kita boleh menukar set nombor binari tersebut kepada nombor perlapanan. Dengan cara ini kita menukar nombor Heksadesimal kepada nombor perlapanan.

Dengan cara lain selepas mendapat nilai perpuluhan kita terus mencari modulus dengan 8 nilai dan kemudian dengan menggabungkan nilai tersebut kita boleh mendapatkan nilai perlapanan yang sesuai.

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

Untuk menunjukkan kepada anda beberapa contoh

Instance-1

的中文翻译为:

实例-1

Masukkan Nombor Perenambelasan ialah 9AD

Nilai tukar perpuluhan baginya = 2477

Kini nilai perlapanan 2477 = 4655

Instance-2

的中文翻译为:

实例-2

Masukkan Nombor Heksadesimal ialah 219A

Nilai tukar perpuluhan baginya = 8602

现在8602的八进制值为20632

Instance-3

的中文翻译为:

实例-3

Masukkan Nombor Perenambelasan ialah 21AD45

它的十进制转换值 = 2207045

现在2207045的八进制值为10326505

算法

Langkah 1 − Dapatkan nombor input sebagai jenis rentetan sama ada melalui kaedah input statik atau kaedah input pengguna.

Langkah 2 − Menggunakan beberapa kes suis, kami mentakrifkan nilai perpuluhan yang sesuai bagi setiap digit nombor perenambelasan yang diberikan.

第三步 - 在获得十进制值后,我们通过不断地找到8的模数值并连了当的八进制值。

Langkah 4 − Pada akhirnya kami mencetak nilai Octal yang dikira sebagai output.

Pelbagai Pendekatan

Kami telah menyediakan penyelesaian dalam pendekatan yang berbeza.

  • 通过使用静态输入值

  • 通过用户定义的方法

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

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

在这种方法中,我们通过静态输入方法声明一个十六进制输入数字,使他们,使们當将十六进制数字转换为八进制数字。

Contoh

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

Output

The Octal Value of 87FA is 103772.

Pendekatan-2: Dengan Menggunakan Kaedah Ditentukan Pengguna

Dalam pendekatan ini, kami mengisytiharkan nombor input heksadesimal dengan kaedah input statik dan menghantar nombor ini sebagai parameter dalam kaedah yang ditentukan pengguna, kemudian di dalam kaedah dengan menggunakan algoritma kami boleh menukar nombor perenambelasan kepada nombor oktal.

Contoh

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

Output

The Octal Value of 6FE4 is 67744.

Dalam artikel ini, kami meneroka cara menukar nombor perenambelasan kepada nombor perlapanan di Jawa dengan menggunakan pendekatan yang berbeza.

Atas ialah kandungan terperinci Tukar perenambelasan kepada perlapanan dalam Jawa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam