C program to Convert Decimal to Hexadecimal using functions and loops

0

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

Leave a Reply

Your email address will not be published. Required fields are marked *