Question

Convert Binary to a decimal using recursion and vice versa.

Press 1 to convert binary to decimal
Press 2 to convert decimal to binary
1
ENTER BINARY NUMBER:1111101
THE DECIMAL VALUE OF BINARY 1111101 IS 125



Press 1 to convert Binary to Decimal
Press 2 to convert Decimal to Binary
Enter your choice:2
Enter the Decimal number:125
The binary value of 125 is 1111101

Press 1 to convert Binary to Decimal
Press 2 to convert Decimal to Binary
Enter your choice:2
Enter the Decimal number:-125
The binary value of -125 is -1111101


Press 1 to convert Binary to Decimal
Press 2 to convert Decimal to Binary
Enter your choice:1
Enter the Binary number:-1111101
The decimal value of -1111101 is -125


Press 1 to convert Binary to Decimal
Press 2 to convert Decimal to Binary
Enter your choice:1
Enter the Binary number:120101
Invalid Binary number

Share code with your friends

Share on whatsapp
Share on facebook
Share on twitter
Share on telegram

Code

import java.util.*;
public class DecimalToBinaryAndViceVersaUsingRecursion
{
    public static boolean isBinaryNumbervalid(long bin)
    {
        while(bin>0)
        {
            if(bin%10>1)
            {
                System.out.println("Invalid binary number");
                return false;
            }
            bin=bin/10;
        }
        return true;
    }

    public static long BinaryToDecimalConversion(long bin,int power)
    {
        if(bin==0)
        {
            return 0;

        }

        else
        {

            return ((bin%10)*(long)Math.pow(2,power))+BinaryToDecimalConversion(bin/10,power+1);
        }
    }

    public static long DecimalBinaryConversion(long dec)
    {
        if(dec==0)
        {
            return 0;
        }
        else
        {
            return (dec%2)+10*(DecimalBinaryConversion(dec/2));
        }
    }

    public static void main()
    {
        int choice=0;
        long decimal=0,binary=0;
        Scanner sc=new Scanner(System.in);
        System.out.println("Press 1 to convert binary to decimal");
        System.out.println("Press 2 to convert decimal to binary");
        System.out.println("Enter your choice:");
        choice=sc.nextInt();
        switch(choice)
        {
            case 1:
            System.out.print("ENTER BINARY NUMBER:");
            binary=sc.nextLong();
            if(binary< 0)//negative binary number
            {
                if(isBinaryNumbervalid(-binary)==true)
                {
                    decimal=-BinaryToDecimalConversion(-binary,0);
                    /*
                    BinaryToDecimalConversion(-binary,0) will return positive decimal number
                    but we want negative decimal number so that's why
                    we added negative sign in front of BinaryToDecimalConversion(-binary,0)
                     */
                    System.out.println("THE DECIMAL VALUE OF BINARY "+binary+" IS "+decimal);
                }
            }
            else
            {
                if(isBinaryNumbervalid(binary)==true)
                {
                    decimal=BinaryToDecimalConversion(binary,0);
                    System.out.println("THE DECIMAL VALUE OF BINARY "+binary+" IS "+decimal);
                }
            }
            break;

            case 2:
            System.out.print("ENTER DECIMAL NUMBER:");
            decimal=sc.nextLong();
            if(decimal< 0)
            {
                binary=-DecimalBinaryConversion(-decimal);
                /*
                DecimalBinaryConversion(-decimal) will return positive binary number
                but we want negative binary number so that's why
                we added negative sign in front of DecimalBinaryConversion(-decimal)
                 */
                System.out.println("THE BINARY VALUE OF DECIMAL NUMBER "+decimal+" IS "+binary);
            }
            else
            {
                binary=DecimalBinaryConversion(decimal);
                System.out.println("THE BINARY VALUE OF DECIMAL NUMBER "+decimal+" IS "+binary);
            }
            break;

            default:
            System.out.println("Invalid Choice");
            break;
        }

    }
}

Coding Store

Sale

Original price was: ₹80.Current price is: ₹50.
Sale

Original price was: ₹250.Current price is: ₹150.
Sale

Original price was: ₹350.Current price is: ₹200.
Sale

Original price was: ₹80.Current price is: ₹50.
Sale

Original price was: ₹80.Current price is: ₹50.
Sale

Original price was: ₹80.Current price is: ₹50.
Sale
Mastering Array

Original price was: ₹80.Current price is: ₹50.
Sale

Original price was: ₹80.Current price is: ₹50.
Sale

Original price was: ₹80.Current price is: ₹50.
Sale

Original price was: ₹80.Current price is: ₹50.
Sale

Original price was: ₹250.Current price is: ₹150.
Sale

Original price was: ₹350.Current price is: ₹200.
Sale

Original price was: ₹80.Current price is: ₹50.
Sale

Original price was: ₹80.Current price is: ₹50.
Sale

Original price was: ₹80.Current price is: ₹50.
Sale
Mastering Array

Original price was: ₹80.Current price is: ₹50.
Sale

Original price was: ₹80.Current price is: ₹50.
Sale

Original price was: ₹80.Current price is: ₹50.
Sale

Original price was: ₹80.Current price is: ₹50.
Sale

Original price was: ₹250.Current price is: ₹150.
Sale

Original price was: ₹350.Current price is: ₹200.
Sale

Original price was: ₹80.Current price is: ₹50.
Sale

Original price was: ₹80.Current price is: ₹50.
Sale

Original price was: ₹80.Current price is: ₹50.
Sale
Mastering Array

Original price was: ₹80.Current price is: ₹50.
Sale

Original price was: ₹80.Current price is: ₹50.
Sale

Original price was: ₹80.Current price is: ₹50.