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.
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.
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 |
Mari kita fahami cara menukar perenambelasan kepada perpuluhan.
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.
Ia adalah kaedah statik kelas "Integer" yang mengembalikan nilai perpuluhan mengikut asas yang ditentukan. Ia tersedia dalam pakej "java.lang".
Integer.parseInt("String", base);
String - nilai untuk ditukar
Base - Nilai yang diberikan ditukar mengikut asas yang diberikan
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); } }
Decimal value of given Hexadecimal: 1354 Decimal value of given Hexadecimal: 1052
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.
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"); } }
Decimal value of given Hexadecimal: 1354 Decimal value of given Hexadecimal: 1052
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!