Maison  >  Article  >  Java  >  Programme Java : conversion hexadécimal en décimal

Programme Java : conversion hexadécimal en décimal

WBOY
WBOYavant
2023-08-26 13:01:053788parcourir

Programme Java : conversion hexadécimal en décimal

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.

Systèmes de nombres hexadécimaux et décimaux

Système de nombres hexadécimaux

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.

Système de nombres décimaux

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

Conversion hexadécimale en décimal

Voyons comment convertir un hexadécimal en décimal.

Exemple 1

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.

Méthode 1 : utilisez la méthode parseInt()

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".

Grammaire

Integer.parseInt("String", base); 

Paramètres

  • String - la valeur à convertir

  • Base - La valeur donnée est convertie en fonction de la base donnée

Exemple

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);
   }
}

Sortie

Decimal value of given Hexadecimal: 1354
Decimal value of given Hexadecimal: 1052

Méthode 2 : Utiliser la méthode définie par l'utilisateur

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.

Exemple

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

Sortie

Decimal value of given Hexadecimal: 1354
Decimal value of given Hexadecimal: 1052

Conclusion

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer