#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.
Variable | Significance of the Variable |
---|---|
num | This 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. |
i | Used as subscript variable for remainder array i.e rem |
length | It is used to keep track of the size of a reminder array. |
- Divide the number with 16 and store reminder in an array
- Divide the number with 16 and store quotient in num variable
- 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 -
Remainder | Display this |
---|---|
10 | A |
11 | B |
12 | C |
13 | D |
14 | E |
15 | F |
case 10: printf("A"); break; case 11: printf("B"); break;
No comments:
Post a Comment