Method 1 – Using loops
#include <stdio.h>int main(){ int OCTALVALUES[] = {0, 1, 10, 11, 100, 101, 110, 111}; long long octal, tempOctal, binary, place; int rem; printf("Enter any Octal number: "); scanf("%lld", &octal); tempOctal = octal; binary = 0; place = 1; while(tempOctal > 0) { rem = tempOctal % 10; binary = (OCTALVALUES[rem] * place) + binary; tempOctal /= 10; place *= 1000; } printf("Octal number = %lld\n", octal); printf("Binary number = %lld", binary); return 0;}Output
Enter any Octal number: 1720
Octal number = 1720
Binary number = 1111010000
Method 2 – Using Switch Cases
#include <stdio.h>#define MAX 1000 int main(){ char octalnum[MAX]; long i = 0; printf("Enter any octal number: "); scanf("%s", octalnum); printf("Equivalent binary value: "); while (octalnum[i]) { switch (octalnum[i]) { case '0': printf("000"); break; case '1': printf("001"); break; case '2': printf("010"); break; case '3': printf("011"); break; case '4': printf("100"); break; case '5': printf("101"); break; case '6': printf("110"); break; case '7': printf("111"); break; default: printf("\n Invalid octal digit %c ", octalnum[i]); return 0; } i++; } return 0;Output
Enter any octal number: 160
Equivalent binary value: 001110000