C Program To Convert Decimal To Binary Number using Recursion

A positive integer is entered through the keyboard, write a function to find the Binary equivalent of this number:

(1) Without using recursion.
(2) Using recursion.

Analyze The Problem Statement

We need to convert the user input Decimal number to its equivalent Binary number using iterative logic as well as recursive logic.

In this video tutorial, we’ll write 2 functions. One for iterative logic and another for recursive logic.

Expected Input/Output

Enter a Decimal number
14

Iterative Logic
Binary Equivalent of 14 is 1110.

Recursive Logic
Binary Equivalent of 14 is 11110.

Note: Binary number system can be derived by base 2 to the power of whole numbers.

Binary Number System

Explanation:

If user enters num = 14

We keep on dividing and modulo dividing the number by 2.

14 / 2 = 7, reminder 0.
07 / 2 = 3, reminder 1.
03 / 2 = 1, reminder 1.
01 / 2 = 0

So Binary equivalent of 14 is 1110.

Video Tutorial: C Program To Convert Decimal To Binary Number using Recursion


[youtube https://www.youtube.com/watch?v=hBaesKngoMY]

YouTube Link: https://www.youtube.com/watch?v=hBaesKngoMY [Watch the Video In Full Screen.]

Source Code: C Program To Convert Decimal To Binary Number using Recursion

#include<stdio.h>

int binary_rec(int);
int binary(int);

int main()
{
    int num;

    printf("Enter a Decimal number\n");
    scanf("%d", &num);

    printf("Binary Equivalent (Iterative) of %d is %d\n", num, binary(num));
    printf("Binary Equivalent (Recursive) of %d is %d\n", num, binary_rec(num));

    return 0;
}

int binary_rec(int num)
{
    if(num == 0)
        return 0;
    else
        return((num % 2) + 10 * binary_rec(num/2));
}

int binary(int num)
{
    int rem, bin = 0, place = 1;
    while(num)
    {
        rem   = num % 2;
        num   = num / 2;
        bin   = bin + (rem * place);
        place = place * 10;
    }
    return(bin);
}

Output 1:
Enter a Decimal number
14

Iterative Logic
Binary Equivalent of 14 is 1110

Recursive Logic
Binary Equivalent of 14 is 1110

Output 2:
Enter a Decimal number
41

Iterative Logic
Binary Equivalent of 41 is 101001

Recursive Logic
Binary Equivalent of 41 is 101001

Logic To Convert Decimal Number To Binary Number using Recursion

For iterative logic, please check the video tutorial C Program To Convert Decimal Number To Binary Number, using While Loop.

Recursive Function Logic
Assume that user inputs num value as 14.

numnum % 2(num % 2) + 10 * binary_rec(num/2)
1414 % 2(0) + 10 * binary_rec(7)
77 % 2(1) + 10 * binary_rec(3)
33 % 2(1) + 10 * binary_rec(1)
11 % 2(1) + 10 * binary_rec(0)

Value Returning – Control Shifting back.

Return ValueToResult
return 0;(1) + 10 * binary_rec(0)(1) + 10 * 0 = 1
1(1) + 10 * binary_rec(1)(1) + 10 * 1 = 11
11(1) + 10 * binary_rec(3)(1) + 10 * 11 = 111
111(0) + 10 * binary_rec(7)(0) + 10 * 111 = 1110

Binary Equivalent of Decimal Number 14 is 1110.

Source Code: C Program To Convert Decimal To Binary Number using Recursion and Ternary or Conditional Operator

#include<stdio.h>

int binary_rec(int);
int binary(int);

int main()
{
    int num;

    printf("Enter a Decimal number\n");
    scanf("%d", &num);

    printf("\nIterative Logic\n");
    printf("Binary Equivalent of %d is %d\n\n", num, binary(num));

    printf("\nRecursive Logic\n");
    printf("Binary Equivalent of %d is %d\n\n", num, binary_rec(num));

    return 0;
}

int binary_rec(int num)
{
    return( (num == 0) ? 0 : (num % 2) + 10 * binary_rec(num / 2));
}

int binary(int num)
{
    int rem, bin = 0, place = 1;

    while(num != 0)
    {
        rem   = num % 2;
        num   = num / 2;
        bin   = bin + (rem * place);
        place = place * 10;
    }
    return(bin);
}

Output 1:
Enter a Decimal number
14

Iterative Logic
Binary Equivalent of 14 is 1110

Recursive Logic
Binary Equivalent of 14 is 1110

Output 2:
Enter a Decimal number
41

Iterative Logic
Binary Equivalent of 41 is 101001

Recursive Logic
Binary Equivalent of 41 is 101001

To know more about Ternary or Conditional Operator visit:
Ternary Operator / Conditional Operator In C

Source Code: C Program To Convert Decimal To Binary Number using Recursion

Another Method

#include<stdio.h>

void binary_rec(int);
int binary(int);

int main()
{
    int num;

    printf("Enter a Decimal number\n");
    scanf("%d", &num);

    printf("\nIterative Logic\n");
    printf("Binary Equivalent of %d is %d\n\n", num, binary(num));

    printf("\nRecursive Logic\n");
    printf("Binary Equivalent of %d is ", num);
    binary_rec(num);
    
    printf("\n");

    return 0;
}

void binary_rec(int num)
{
    if(num == 1)
        printf("1");
    else
    {
        binary_rec(num/2);
        printf("%d", num%2);
    }
}

int binary(int num)
{
    int rem, bin = 0, place = 1;

    while(num != 0)
    {
        rem   = num % 2;
        num   = num / 2;
        bin   = bin + (rem * place);
        place = place * 10;
    }
    return(bin);
}

Output:
Enter a Decimal number
14

Iterative Logic
Binary Equivalent of 14 is 1110

Recursive Logic
Binary Equivalent of 14 is 1110

Here we simply divide the number by 2 and keep passing it as new value of num to binary_rec() function, and we print num%2 once num = 1 and it returns the value 1.

Number Systems

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.

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

C Program To Convert Octal Number To Binary Number, using While Loop

Lets write a C program to convert a number from Octal number system(base 8) to Binary number system(base 2), using while loop.

In this C program we first convert the user entered number from Octal number system to Decimal number system. Then we take the result(which is in Decimal number system) and convert to Binary number system.

Number Systems

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 Octal Number To Decimal Number, using While Loop
C Program To Convert Decimal Number To Binary Number, using While Loop

Note:
In this C program we are dealing with Octal Number System, Decimal Number System and Binary Number System.

Octal Number System
Octal number system has base 8 and digits 0, 1, 2, 3, 4, 5, 6, 7.
octal number system
Example:
etc .. 84, 83, 82, 81, 80

etc .. 84 = ‭4,096‬, 83 = 512, 82 = 64, 81 = 8, 80 = 1.

Binary Number System
Binary number system has base 2 and digits 0 and 1.
binary decimal number system
Example:
etc .. 24, 23, 22, 21, 20

etc .. 24 = 16, 23 = 8, 22 = 4, 21 = 2, 20 = 1.

Expected Output for the Input

User Input:
Enter an Octal Number
14

Output:
Binary Equivalent of Octal no 14 is 1100.

Video Tutorial: C Program To Convert Octal Number To Binary Number, using While Loop


[youtube https://www.youtube.com/watch?v=_juS8cQRMYs]

YouTube Link: https://www.youtube.com/watch?v=_juS8cQRMYs [Watch the Video In Full Screen.]

Logic To Convert Octal Number To Binary Number, using While Loop

To get complete logic to this program kindly watch these two video tutorials without fail.

1. C Program To Convert Octal Number To Decimal Number, using While Loop
2. C Program To Convert Decimal Number To Binary Number, using While Loop

Source Code: C Program To Convert Octal Number To Binary Number, using While Loop

#include < stdio.h >
#include < math.h >

int main()
{
    int  num, dec = 0, rem = 0, place = 0;
    long bin = 0;

    printf("Enter an Octal Number\n");
    scanf("%d", &num);

    printf("Binary Equivalent of Octal no %d is ", num);
    while(num)
    {
        rem = num % 10;
        dec = dec + rem * pow(8, place);
        num = num / 10;
        place++;
    }

    place = 1;
    rem   = 0;
    while(dec)
    {
        rem   = dec % 2;
        bin   = bin + (rem * place);
        dec   = dec / 2;
        place = place * 10;
    }
    printf("%ld.\n", bin);

    return 0;
}

Output 1:
Enter an Octal Number
71
Binary Equivalent of Octal no 71 is 111001.

Output 2:
Enter an Octal Number
11
Binary Equivalent of Octal no 11 is 1001.

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

C Program To Convert Binary Number To Octal Number, using While Loop

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.

Number Systems

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.
binary decimal number system
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.
octal number system
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]

YouTube Link: https://www.youtube.com/watch?v=W1T6Jm41fok [Watch the Video In Full Screen.]

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

C Program To Convert Octal To Decimal Number In One Line

Lets write a C program to convert a number from Octal number system(base 8) to Decimal number system(base 10) in one line.

Related Read:
C Program To Convert Octal Number To Decimal Number, using While Loop

Expected Output for the Input

User Input:
Enter an Octal number
41

Output:
Decimal Representation of Octal Number 41 is 33.

Logic To Convert Octal To Decimal Number In One Line of Code

In c programming language, any octal number(%o format specifier) you store will also be stored in decimal form and you can print it using %d format specifier.

Video Tutorial: C Program To Convert Octal To Decimal Number In One Line


[youtube https://www.youtube.com/watch?v=ifkQ4wDsE6I]

YouTube Link: https://www.youtube.com/watch?v=ifkQ4wDsE6I [Watch the Video In Full Screen.]

Source Code: C Program To Convert Octal To Decimal Number In One Line

#include < stdio.h >

int main()
{
    int num;

    printf("Enter an Octal number\n");
    scanf("%o", &num);

    printf("\nDecimal Representation of Octal Number %o is %d\n", num, num);

    return 0;
}

Output 1:
Enter an Octal number
20

Decimal Representation of Octal Number 20 is 16

Output 2:
Enter an Octal number
51

Decimal Representation of Octal Number 51 is 41

Output 3:
Enter an Octal number
132

Decimal Representation of Octal Number 132 is 90

Output 4:
Enter an Octal number
16

Decimal Representation of Octal Number 16 is 14

Output 5:
Enter an Octal number
40

Decimal Representation of Octal Number 40 is 32

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

C Program To Convert Decimal To Octal Number In One Line

Lets write a C program to convert a number from Decimal number system(base 10) to Octal number system(base 8) in one line.

Related Read:
C Program To Convert Decimal Number To Octal Number, using While Loop

Expected Output for the Input

User Input:
Enter a Decimal Number
90

Output:
Octal representation of Decimal number 90 is 132

Logic To Convert Decimal To Octal Number In One Line of Code

In c programming language, any decimal number you store will also be stored in Octal form and you can print it using %o format specifier.

Video Tutorial: C Program To Convert Decimal To Octal Number In One Line


[youtube https://www.youtube.com/watch?v=41-xLNYbvDY]

YouTube Link: https://www.youtube.com/watch?v=41-xLNYbvDY [Watch the Video In Full Screen.]

Source Code: C Program To Convert Decimal To Octal Number In One Line

#include < stdio.h >

int main()
{
    int num;

    printf("Enter a Decimal Number\n");
    scanf("%d", &num);

    printf("\nOctal representation of Decimal number %d is %o\n", num, num);

    return 0;
}

Output 1:
Enter a Decimal Number
16

Octal representation of Decimal number 16 is 20

Output 2:
Enter a Decimal Number
41

Octal representation of Decimal number 41 is 51

Output 3:
Enter a Decimal Number
90

Octal representation of Decimal number 90 is 132

Output 4:
Enter a Decimal Number
14

Octal representation of Decimal number 14 is 16

Output 5:
Enter a Decimal Number
32

Octal representation of Decimal number 32 is 40

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