Il existe quatre types de systèmes numériques : binaire, octal, décimal et hexadécimal, avec des valeurs de base de 2, 8, 10 et 16 respectivement. La valeur de base dépend du nombre de chiffres que contient le système numérique. Par exemple, le système de numération binaire ne contient que deux chiffres, 0 et 1, sa base est donc 2.
Dans cet article, nous discuterons des systèmes de nombres hexadécimaux et décimaux. Nous écrirons également un programme Java pour convertir un nombre hexadécimal en nombre décimal.
Il représente les nombres de 0 à 9, de A à F. Il y a 16 nombres au total et sa valeur de base est également 16. Le poids des nombres individuels est une puissance de 16, donc chaque nombre est 16 fois plus lourd que le précédent. 12A16, 34B16, 45C16 sont quelques exemples d'hexadécimal. Sur les ordinateurs, les codes de couleur sont généralement écrits sous forme hexadécimale.
Supposons que nous devions stocker une grande valeur décimale, si nous la stockons dans un système de comptage binaire, la chaîne binaire peut devenir très longue. Dans ce cas, nous pouvons utiliser le système de numérotation hexadécimal qui peut stocker 4 bits binaires sous forme de 1 bit. Cela raccourcit la longueur du bit.
C'est le système numérique le plus couramment utilisé. Il comporte 10 chiffres de 0 à 9. Sa valeur de base est donc 10. Si la valeur de base d'un nombre n'est pas mentionnée, le nombre est supposé être 10. Les nombres individuels sont pondérés en puissances de 10, donc chaque nombre a 10 fois plus de poids que le précédent. Par exemple 1010, 43110, 98010, etc.
Le tableau suivant représente les valeurs binaires et décimales de tous les nombres hexadécimaux -
binaire |
Décimal |
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 |
Voyons comment convertir un hexadécimal en décimal.
Convertir l'hexadécimal (54A)16 en décimal -
Nous pouvons convertir chaque nombre en décimal en le multipliant par 16n-1, où n est le nombre de chiffres.
(54A)16 = 5 * 163-1 + 4 * 162-1 + A * 161-1
= 5 * 162 + 4 * 161 + 10 * 160 [A = 10 table décimale]
= 5 * 256 + 64 + 10 [160 est égal à 1]
= 1280 + 74
= 1354
Maintenant, nous allons voir un programme Java dans lequel nous appliquerons la logique ci-dessus pour convertir l'hexadécimal en décimal.
C'est une méthode statique de classe "Integer" qui renvoie une valeur décimale selon la base spécifiée. Il est disponible dans le package "java.lang".
Integer.parseInt("String", base);
String - la valeur à convertir
Base - La valeur donnée est convertie en fonction de la base donnée
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
Dans cette méthode, nous allons créer une méthode cnvrt() définie par l'utilisateur avec le paramètre "hexNum". Nous allons déclarer et initialiser "hexStr" qui stockera tous les chiffres hexadécimaux sous forme de chaîne. Nous exécuterons ensuite une boucle for jusqu'à la longueur du paramètre "hexNum". Dans cette boucle, nous obtiendrons le caractère et son index de "hexStr" puis appliquerons la logique de conversion.
Dans la méthode principale, nous appellerons la méthode "cnvrt()" avec différents paramètres.
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
Dans cet article, nous avons découvert les types de systèmes numériques. Ces systèmes numériques sont la base de toute opération mathématique. En outre, deux méthodes permettant de créer des programmes Java permettant de convertir des nombres hexadécimaux en nombres décimaux sont également abordées.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!