C Program to Convert Octal to Binary using loops and cases

0

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

Leave a Reply

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