Rumah > Java > javaTutorial > teks badan

Program Java: heksadesimal kepada penukaran perpuluhan

WBOY
Lepaskan: 2023-08-26 13:01:05
ke hadapan
3812 orang telah melayarinya

Program Java: heksadesimal kepada penukaran perpuluhan

Terdapat empat jenis sistem nombor: perduaan, perlapanan, perpuluhan dan perenambelasan, dengan nilai asas masing-masing 2, 8, 10 dan 16. Nilai asas bergantung pada bilangan digit yang terkandung dalam sistem nombor. Sebagai contoh, sistem nombor binari hanya mengandungi dua digit, 0 dan 1, jadi asasnya ialah 2.

Dalam artikel ini, kita akan membincangkan sistem nombor Heksadesimal dan Perpuluhan. Juga, kami akan menulis program java untuk menukar nombor perenambelasan kepada nombor perpuluhan.

Sistem nombor heks dan perpuluhan

Sistem nombor heksadesimal

Ia mewakili nombor dari 0 hingga 9, A hingga F. Terdapat 16 nombor secara keseluruhan, dan nilai asasnya juga 16. Berat nombor individu ialah kuasa 16, jadi setiap nombor adalah 16 kali lebih berat daripada yang sebelumnya. 12A16, 34B16, 45C16 ialah beberapa contoh perenambelasan. Dalam komputer, kod warna biasanya ditulis dalam bentuk perenambelasan.

Andaikan kita perlu menyimpan nilai perpuluhan yang besar, jika kita menyimpannya dalam sistem pengiraan binari maka rentetan binari mungkin menjadi sangat panjang. Dalam kes ini kita boleh menggunakan sistem nombor heksadesimal yang boleh menyimpan 4 bit binari sebagai 1 bit. Ia memendekkan panjang bit.

Sistem nombor perpuluhan

Ia adalah sistem nombor yang paling biasa digunakan. Ia mempunyai 10 digit dari 0 hingga 9. Oleh itu, nilai asasnya ialah 10. Jika nilai asas nombor tidak disebut, nombor itu diandaikan 10. Nombor individu ditimbang sebagai kuasa 10, jadi setiap nombor adalah 10 kali lebih berat daripada yang terakhir. Contohnya 1010, 43110, 98010, dsb.

Jadual berikut mewakili nilai perduaan dan perpuluhan semua nombor heksadesimal -

binari

Perpuluhan

Hex

0001

1

1

0010

2

2

0011

3

3

0100

4

4

0101

5

5

0110

6

6

0111

7

7

1000

8

8

1001

9

9

1010

10

A

1011

11

B

1100

12

C

1101

13

D

1110

14

E

1111

15

F

Penukaran Heks kepada Perpuluhan

Mari kita fahami cara menukar perenambelasan kepada perpuluhan.

Contoh 1

Tukar perenambelasan (54A)16 kepada perpuluhan -

Kita boleh menukar setiap nombor kepada perpuluhan dengan mendarabkannya dengan 16n-1, dengan n ialah bilangan digit.

(54A)16 = 5 * 163-1 + 4 * 162-1 + A * 161-1

= 5 * 162 + 4 * 161 + 10 * 160 [A = 10 jadual perpuluhan]

= 5 * 256 + 64 + 10 [160 sama dengan 1]

= 1280 + 74

= 1354

Sekarang, kita akan melihat program java di mana kita akan menggunakan logik di atas untuk menukar perenambelasan kepada perpuluhan.

Kaedah 1: Gunakan kaedah parseInt()

Ia adalah kaedah statik kelas "Integer" yang mengembalikan nilai perpuluhan mengikut asas yang ditentukan. Ia tersedia dalam pakej "java.lang".

Tatabahasa

Integer.parseInt("String", base); 
Salin selepas log masuk

Parameter

  • String - nilai untuk ditukar

  • Base - Nilai yang diberikan ditukar mengikut asas yang diberikan

Contoh

public class Conversion {
   public static void main(String args[]) {  
      // Converting and storing hexadecimal value to dec1 and dec2 with base 16  
      int dec1 = Integer.parseInt("54A", 16);
      int dec2 = Integer.parseInt("41C", 16);
      System.out.println("Decimal value of given Hexadecimal: " + dec1);
      System.out.println("Decimal value of given Hexadecimal: " + dec2);
   }
}
Salin selepas log masuk

Output

Decimal value of given Hexadecimal: 1354
Decimal value of given Hexadecimal: 1052
Salin selepas log masuk
Salin selepas log masuk

Kaedah 2: Gunakan kaedah yang ditentukan pengguna

Dalam kaedah ini, kami akan mencipta kaedah yang ditentukan pengguna cnvrt() dengan parameter "hexNum". Kami akan mengisytiharkan dan memulakan "hexStr" yang akan menyimpan semua digit heksadesimal dalam bentuk rentetan. Kami kemudian akan menjalankan gelung for sehingga panjang parameter "hexNum". Dalam gelung ini, kita akan mendapatkan watak dan indeksnya daripada "hexStr" dan kemudian menggunakan logik penukaran.

Dalam kaedah utama, kami akan memanggil kaedah "cnvrt()" dengan parameter yang berbeza.

Contoh

public class Conversion {
   public static void cnvrt(String hexNum) {
      // storing all the hexadecimal digits to this string 
      String hexStr = "0123456789ABCDEF"; 
      // converting given argument to uppercase
      hexNum = hexNum.toUpperCase();   
      int dec = 0;  
      for (int i = 0; i < hexNum.length(); i++) {  
         char ch = hexNum.charAt(i); 
         // fetching characters sequentially 
         int index = hexStr.indexOf(ch); 
         // fetching index of characters  
         dec = 16 * dec + index; 
         // applying the logic of conversion 
      }
      System.out.println("Decimal value of given Hexadecimal: " + dec); 
   }
   public static void main(String args[]) {
      // calling the function with arguments
      cnvrt("54A"); 
      cnvrt("41C");  
   }
}
Salin selepas log masuk

Output

Decimal value of given Hexadecimal: 1354
Decimal value of given Hexadecimal: 1052
Salin selepas log masuk
Salin selepas log masuk

Kesimpulan

Dalam artikel ini, kami belajar tentang jenis sistem nombor. Sistem nombor ini adalah asas kepada sebarang operasi matematik. Selain itu, dua kaedah membuat atur cara java untuk menukar nombor perenambelasan kepada nombor perpuluhan turut dibincangkan.

Atas ialah kandungan terperinci Program Java: heksadesimal kepada penukaran perpuluhan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!