Logic of This Program :
In this program we are accepting the decimal number from the user and decimal number is converted into the equivalent octal number with simple steps -
Steps to Convert Decimal to Octal :
- Accept the given decimal number
- If the number is less than 8 the octal number is the same
- If the num > 7 then Divide the number with 8
- Write down the remainder
- Do steps 3 and 4 with the quotient till that quotient is less than 8
- Write the remainders in reverse order (bottom to top)
- The resultant is the equivalent octal number to the given decimal number
#include<stdio.h> #include<conio.h> #include<math.h> void dec_oct(long int num) // Function Definition { long int rem[50],i=0,length=0; while(num>0) { rem[i]=num%8; num=num/8; i++; length++; } printf("nOctal number : "); for(i=length-1;i>=0;i--) printf("%ld",rem[i]); } //================================================ void main() { long int num; clrscr(); printf("Enter the decimal number : "); scanf("%ld",&num); dec_oct(num); // Calling function getch(); }
Output :
Enter the decimal number : 20 Octal number : 24
Explanation of C Program :
We are dividing the number by 8 and storing the reminder in the rem[] array.
while(num>0) { rem[i]=num%8; num=num/8; i++; length++; }
Original number is then divided by 8 and
num = num / 8;
We are repeating the steps until ‘num’ is greater than 0.
while(num>0) { --- Logic of --- the Code }
Now we are printing the reminders stored in an array in reverse order so that equivalent octal number gets printed.
for(i = length-1 ; i >= 0 ; i--) printf("%ld",rem[i]);
No comments:
Post a Comment