Maison >Problème commun >Quelles sont les méthodes de conversion de décimal en hexadécimal en langage C ?
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)" .
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!