Es gibt vier Arten von Zahlensystemen: binär, oktal, dezimal und hexadezimal, mit den Basiswerten 2, 8, 10 bzw. 16. Der Grundwert hängt von der Anzahl der Ziffern ab, die das Zahlensystem enthält. Beispielsweise enthält das binäre Zahlensystem nur zwei Ziffern, 0 und 1, daher ist seine Basis 2.
In diesem Artikel besprechen wir hexadezimale und dezimale Zahlensysteme. Außerdem werden wir ein Java-Programm schreiben, um eine Hexadezimalzahl in eine Dezimalzahl umzuwandeln.
Es stellt Zahlen von 0 bis 9, A bis F dar. Insgesamt gibt es 16 Zahlen und der Grundwert beträgt ebenfalls 16. Das Gewicht einzelner Zahlen ist eine Potenz von 16, sodass jede Zahl 16-mal schwerer ist als die vorherige. 12A16, 34B16, 45C16 sind einige Beispiele für Hexadezimalzahlen. In Computern werden Farbcodes üblicherweise in hexadezimaler Form geschrieben.
Angenommen, wir müssen einen großen Dezimalwert speichern. Wenn wir ihn in einem binären Zählsystem speichern, kann die Binärzeichenfolge sehr lang werden. In diesem Fall können wir das hexadezimale Zahlensystem verwenden, das 4 Binärbits als 1 Bit speichern kann. Es verkürzt die Bitlänge.
Es ist das am häufigsten verwendete Zahlensystem. Es hat 10 Ziffern von 0 bis 9. Daher beträgt sein Basiswert 10. Wenn der Basiswert einer Zahl nicht angegeben ist, wird davon ausgegangen, dass die Zahl 10 ist. Einzelne Zahlen werden als Zehnerpotenzen gewichtet, sodass jede Zahl zehnmal gewichtiger ist als die letzte. Zum Beispiel 1010, 43110, 98010 usw.
Die folgende Tabelle stellt die Binär- und Dezimalwerte aller Hexadezimalzahlen dar -
binär |
Dezimal |
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 |
Lassen Sie uns verstehen, wie man Hexadezimalzahlen in Dezimalzahlen umwandelt.
Hexadezimal (54A)16 in Dezimalzahl umwandeln -
Wir können jede Zahl in eine Dezimalzahl umwandeln, indem wir sie mit 16n-1 multiplizieren, wobei n die Anzahl der Ziffern ist.
(54A)16 = 5 * 163-1 + 4 * 162-1 + A * 161-1
= 5 * 162 + 4 * 161 + 10 * 160 [A = 10 Dezimaltabelle]
= 5 * 256 + 64 + 10 [160 entspricht 1]
= 1280 + 74
= 1354
Jetzt sehen wir ein Java-Programm, in dem wir die obige Logik anwenden, um Hexadezimalzahlen in Dezimalzahlen umzuwandeln.
Es handelt sich um eine statische Methode der Klasse „Integer“, die einen Dezimalwert entsprechend der angegebenen Basis zurückgibt. Es ist im Paket „java.lang“ verfügbar.
Integer.parseInt("String", base);
String – der zu konvertierende Wert
Basis – Der angegebene Wert wird entsprechend der angegebenen Basis umgerechnet
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
In dieser Methode erstellen wir eine benutzerdefinierte Methode cnvrt() mit dem Parameter „hexNum“. Wir werden „hexStr“ deklarieren und initialisieren, das alle hexadezimalen Ziffern in Form einer Zeichenfolge speichert. Anschließend führen wir eine for-Schleife durch, bis die Länge des Parameters „hexNum“ erreicht ist. In dieser Schleife erhalten wir das Zeichen und seinen Index von „hexStr“ und wenden dann die Konvertierungslogik an.
In der Hauptmethode rufen wir die Methode „cnvrt()“ mit verschiedenen Parametern auf.
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
In diesem Artikel haben wir etwas über die Arten von Zahlensystemen gelernt. Diese Zahlensysteme sind die Grundlage jeder mathematischen Operation. Darüber hinaus werden zwei Methoden zur Erstellung von Java-Programmen zur Konvertierung von Hexadezimalzahlen in Dezimalzahlen besprochen.
Das obige ist der detaillierte Inhalt vonJava-Programm: Hexadezimal-Dezimal-Konvertierung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!