Maison >Problème commun >Quelles sont les méthodes de conversion de décimal en hexadécimal en langage C ?

Quelles sont les méthodes de conversion de décimal en hexadécimal en langage C ?

不言
不言original
2019-02-22 11:45:07105819parcourir

Comment convertir un nombre décimal en hexadécimal en langage C : 1. Grâce à la méthode de la boucle while ; 2. Grâce à la méthode de la boucle for ; 3. Utilisez des fonctions pour convertir, du code tel que "int decimal_to_hexadecimal(int x)" .

Quelles sont les méthodes de conversion de décimal en hexadécimal en langage C ?

L'environnement d'exploitation de cet article : système Windows 7, version C11, ordinateur Dell G3.

Il existe de nombreuses façons de convertir un nombre décimal en hexadécimal en langage C. Vous pouvez utiliser des boucles for, des boucles while ou des fonctions. Jetons un coup d'œil à l'introduction spécifique de la méthode

Les nombres décimaux sont en base 10 et incluent les nombres suivants : 0 1 2 3 4 5 6 7 8 9

Les nombres hexadécimaux sont en base 16 et incluent le valeurs suivantes : 0 1 2 3 4 5 6 7 8 9 A B C D E F, où A = 10, B = 11, C = 12, D = 13, E = 14, F = 15.

Le code pour convertir le décimal en hexadécimal en langage C est le suivant

boucle while :

#include<stdio.h>
int main() {
	long int decimalNumber,remainder,quotient;
	int i=1,j,temp;
	char hexadecimalNumber[100];
	printf("输入十进制数任意: ");
	scanf("%ld",&decimalNumber);
	quotient = decimalNumber;
	while(quotient!=0) {
		temp = quotient % 16;
		if( temp < 10)
		           temp =temp + 48; else
		         temp = temp + 55;
		hexadecimalNumber[i++]= temp;
		quotient = quotient / 16;
	}
	printf("十进制数的等效十六进制值 %d: ",decimalNumber);
	for (j = i -1 ;j> 0;j--)
	      printf("%c",hexadecimalNumber[j]);
	return 0;
}

boucle for

#include<stdio.h>
#include<math.h>

int main()
{
      int decimal_number, remainder, hexadecimal_number = 0;
      int count;
      printf("Enter a Decimal Number:\t");
      scanf("%d", &decimal_number);	
      for(count = 0; decimal_number > 0; count++)
      {
            remainder = decimal_number % 16;
            hexadecimal_number = hexadecimal_number + remainder * pow(10, count);
            decimal_number = decimal_number / 16;
      }
      printf("\nHexadecimal Equivalent:\t%d\n", hexadecimal_number);
      return 0;
}

Utiliser la fonction

#include<stdio.h>
#include<math.h>

int decimal_to_hexadecimal(int x)
{
      int hexadecimal_number, remainder, count = 0;
      for(count = 0; x > 0; count++)
      {
            remainder = x % 16;
            hexadecimal_number = hexadecimal_number + remainder * pow(10, count);
            x = x / 16;
      }
      return hexadecimal_number;
}

int main()
{
      int decimal_number, result;
      printf("Enter a Decimal Number:\t");
      scanf("%d", &decimal_number);		
      result = decimal_to_hexadecimal(decimal_number);	
      printf("\nHexadecimal Equivalent:\t%d\n", result);
      return 0;
}

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:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn