## C Program To Convert Decimal To Hexadecimal Number

Learn How To Convert Decimal To Hexadecimal Number in C Programming Language. This C code for Decimal Number to Hexadecimal Conversion makes use of **pow()** function, **While** loop and** For** loop.

#### Decimal Number

A Decimal Number has a base 10 and includes digits the following digits: **0 1 2 3 4 5 6 7 8 9**

#### Hexadecimal Number

A Hexadecimal Number has a base 16 and includes the following values: **0 1 2 3 4 5 6 7 8 9 A B C D E F where,**

**A = 10, B = 11, C = 12, D = 13, E = 14, F = 15.**

#### Method 1: C Program To Convert Decimal To Hexadecimal Value using While Loop

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | #include<stdio.h> #include<math.h> int main() { int decimal_number, remainder, hexadecimal_number = 0; int count = 0; printf("Enter a Decimal Number:\t"); scanf("%d", &decimal_number); while(decimal_number != 0) { remainder = decimal_number % 16; hexadecimal_number = hexadecimal_number + remainder * pow(10, count); decimal_number = decimal_number / 16; count++; } printf("\nHexadecimal Equivalent:\t%d\n", hexadecimal_number); return 0; } |

#### Method 2: C Program For Decimal Number To Hexadecimal Conversion using For Loop

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | #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; } |

#### Method 3: C Program To Convert Decimal To Hexadecimal Number using Functions

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | #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; } |

#### Output

If you have any compilation error or doubts in this C Program For Decimal Value to Hexadecimal Number Conversion, let us know about it in the Comment Section below.

Can you explain ” hexadecimal_number = hexadecimal_number + remainder * pow(10, count);” in the 3rd example please?

I tried executing the above program on an online IDE and it returns 11 as the hexadecimal value for both – 11 and 17. Note: Both 11 and 17 are decimal input values.

this is not for proper conversion 45 decimal and 51 decimal gives the same values of hex according to this programm 33.