Lets write a C program to convert a number from Binary number system(base 2) to Octal number system(base 8), using while loop.
In this C program we first convert the user entered number from Binary number system to Decimal number system. Then we take the result(which is in Decimal number system) and convert to Octal number system.
Page Contents
Number Systems
1. Binary Number System uses base 2 and digits 01.
2. Octal Number System uses base 8 and digits 01234567.
3. Decimal Number System uses base 10 and digits 0123456789.
4. Hexadecimal Number System uses base 16 and digits 0123456789ABCDEF.
Related Read:
while loop in C programming
C Program To Convert Binary Number To Decimal Number, using While Loop
C Program To Convert Decimal Number To Octal Number, using While Loop
Note:
In this C program we are dealing with Binary Number System, Decimal Number System and Octal Number System.
Binary Number System
Binary number system has base 2 and digits 0 and 1.
Example:
etc .. 24, 23, 22, 21, 20
etc .. 24 = 16, 23 = 8, 22 = 4, 21 = 2, 20 = 1.
Octal Number System
Octal number system has base 8 and digits 0, 1, 2, 3, 4, 5, 6, 7.
Example:
etc .. 84, 83, 82, 81, 80
etc .. 84 = 4,096, 83 = 512, 82 = 64, 81 = 8, 80 = 1.
Expected Output for the Input
User Input:
Enter a Binary Number
111001
Output:
Octal Equivalent of Binary no 111001 is 71.
Video Tutorial: C Program To Convert Binary Number To Octal Number, using While Loop
[youtube https://www.youtube.com/watch?v=W1T6Jm41fok]
Logic To Convert Binary Number To Octal Number, using While Loop
To get complete logic to this program kindly watch these two video tutorials without fail.
1. C Program To Convert Binary Number To Decimal Number, using While Loop
2. C Program To Convert Decimal Number To Octal Number, using While Loop
Source Code: C Program To Convert Binary Number To Octal Number, using While Loop
#include < stdio.h > #include < math.h > int main() { long num; int dec = 0, oct = 0, rem = 0, place = 0; printf("Enter a Binary Number\n"); scanf("%ld", &num); printf("\nOctal Equivalent of Binary no %ld is ", num); while(num) { rem = num % 10; dec = dec + rem * pow(2, place); num = num / 10; place++; } place = 1; rem = 0; while(dec) { rem = dec % 8; oct = oct + rem * place; dec = dec / 8; place = place * 10; } printf("%d.\n", oct); return 0; }
Output 1:
Enter a Binary Number
1111
Octal Equivalent of Binary no 1111 is 17.
Output 2:
Enter a Binary Number
111001
Octal Equivalent of Binary no 111001 is 71.
For list of all c programming interviews / viva question and answers visit: C Programming Interview / Viva Q&A List
For full C programming language free video tutorial list visit:C Programming: Beginner To Advance To Expert