C Program To Convert Decimal Number To Hexadecimal Number

How To Write a C Program To Convert Decimal Number To Hexadecimal Number in C Programming Language ?

Solution For C Program To Convert Decimal Number To Hexadecimal Number:
#include<stdio.h>
#include<conio.h>
#include<math.h>

void dec_hex(long int num)   // Function Definition
{
long int rem[50],i=0,length=0;

while(num>0)
   {
      rem[i]=num%16;
      num=num/16;
      i++;
      length++;
   }

printf("Hexadecimal number : ");
for(i=length-1;i>=0;i--)
  {
    switch(rem[i])
    {
      case 10:
          printf("A");
          break;
      case 11:
          printf("B");
          break;
      case 12:
          printf("C");
          break;
      case 13:
          printf("D");
          break;
      case 14:
          printf("E");
          break;
      case 15:
          printf("F");
          break;
      default :
         printf("%ld",rem[i]);
    }
  }
}
//================================================
void main()
{
long int num;
clrscr();

 printf("Enter the decimal number : ");
 scanf("%ld",&num);

    dec_hex(num);   // Calling function

 getch();
}
Output :
Enter the decimal number : 87274
Hexadecimal number : 154EA

Logic of This Program :

In this program firstly we need to accept decimal number from the user using following statement -
printf("Enter the decimal number : ");
scanf("%ld",&num);
Now after accepting the number we are calling the function which can evaluate equivalent hexadecimal number.
dec_hex(num);   // Calling function
Inside the function we have declared 3 variables. Below table will explain the significance of each and every variable used inside the function.
VariableSignificance of the Variable
numThis variable is used to store the actual decimal number. We are dividing this variable for finding the remainder and quotient.
rem[50]It is remainder array which is used to store the reminder when we divide the number by 16.
iUsed as subscript variable for remainder array i.e rem
lengthIt is used to keep track of the size of a reminder array.
Now perform below steps until the number becomes less than 0 -
  1. Divide the number with 16 and store reminder in an array
  2. Divide the number with 16 and store quotient in num variable
  3. Increment i and length
while(num > 0)
   {
      rem[i] = num % 16;
      num = num / 16;
      i++;
      length++;
   }
After coming out of the loop. We need to print reminder in reverse fashion. Now consider the following table in order to print array -
RemainderDisplay this
10A
11B
12C
13D
14E
15F
In order to print reminders greater than 10 , refer above table. This can be done with switch case.
case 10:
      printf("A");
      break;
case 11:
      printf("B");
      break;
Tags: C Program To Convert Decimal Number To Hexadecimal Number, c program for converting hexadecimal number into decimal number, write a program to convert hexadecimal to decimal in c, write a c program to convert hexadecimal number to decimal number, c program to convert decimal to hexadecimal and vice versa, c program to convert decimal to hexadecimal using recursion, c program to convert decimal to hexadecimal using functions, c program to convert decimal to hexadecimal using array, c program to convert decimal to hexadecimal using stack.


Learn More :