Method 1 – Using Functions
#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;
}
Method 2 – Using While Loops
#include <stdio.h>
int main()
{
long decimalnum, quotient, remainder;
int i, j = 0;
char hexadecimalnum[100];
printf("Enter decimal number: ");
scanf("%ld", &decimalnum);
quotient = decimalnum;
while (quotient != 0)
{
remainder = quotient % 16;
if (remainder < 10)
hexadecimalnum[j++] = 48 + remainder;
else
hexadecimalnum[j++] = 55 + remainder;
quotient = quotient / 16;
}
for (i = j; i >= 0; i--)
printf("%c", hexadecimalnum[i]);
return 0;
}
Method 3 – Using For Loop
#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;
}
Output
Enter a Decimal Number: 100
Hexadecimal Equivalent: 65