Open In App

Recursive Program for Binary to Decimal

Improve
Improve
Like Article
Like
Save
Share
Report

Given a binary number as string, find its decimal equivalent.

Examples: 

Input :  binary = “101”
Output :   5

Input :  binary = “1111”
Output :   15

 

We have discussed iterative solution to convert Binary to Decimal.
The idea is simple, we add current term and recur for remaining terms.
 

binary2decimal

 

C++




// Recursive CPP program to convert binary
// decimal
#include<bits/stdc++.h>
using namespace std;
 
int toDecimal(string binary, int i=0)
{
    // If we reached last character
    int n = binary.length();
    if (i == n-1)
      return binary[i] - '0';
     
    // Add current tern and recur for
    // remaining terms
    return ((binary[i] - '0') << (n-i-1))  +
            toDecimal(binary, i+1);
}
 
// Driver code
int main()
{
    string binary = "1010";
    cout << toDecimal(binary) << endl;
    return 0;
}


Java




// Recursive Java program to convert binary
// decimal
 
 
class GFG
{
    static int toDecimal(String binary,int i)
    {
        // If we reached last character
        int n = binary.length();
        if (i == n-1)
        return binary.charAt(i) - '0';
         
        // Add current tern and recur for
        // remaining terms
        return ((binary.charAt(i) - '0') << (n-i-1)) +
                toDecimal(binary, i+1);
    }
     
    // Driver code
    public static void main(String []args)
    {
        String binary = "1010";
        int i=0;
        System.out.println(toDecimal(binary,i));
         
    }
 
}
 
// This code is contributed
// by ihritik ( Hritik Raj)


Python3




# Recursive Python3 program to convert
# binary decimal
 
def toDecimal(binary, i = 0):
 
    # If we reached last character
    n = len(binary)
    if (i == n - 1) :
        return int(binary[i]) - 0
     
    # Add current tern and recur for
    # remaining terms
    return (((int(binary[i]) - 0) << (n - i - 1)) +
                        toDecimal(binary, i + 1))
 
# Driver code
if __name__ == "__main__" :
     
    binary = "1010"
    print(toDecimal(binary))
 
# This code is contributed by Ryuga


C#




// Recursive C# program to convert binary
// decimal
 
 
using System;
class GFG
{
    static int toDecimal(string binary, int i=0)
    {
        // If we reached last character
        int n = binary.Length;
        if (i == n-1)
        return binary[i] - '0';
         
        // Add current tern and recur for
        // remaining terms
        return ((binary[i] - '0') << (n-i-1)) +
                toDecimal(binary, i+1);
    }
     
    // Driver code
    public static void Main()
    {
        string binary = "1010";
        Console.WriteLine(toDecimal(binary));
         
    }
 
}
 
// This code is contributed
// by ihritik ( Hritik Raj)


PHP




<?php
// Recursive CPP program to convert
// binary decimal
 
function toDecimal($binary, $i = 0)
{
    // If we reached last character
    $n = strlen($binary);
    if ($i == $n - 1)
    return ord($binary[$i]) - ord('0');
     
    // Add current tern and recur for
    // remaining terms
    return ((ord($binary[$i]) - ord('0')) << ($n - $i - 1)) +
             toDecimal($binary, $i + 1);
}
 
// Driver code
$binary = "1010";
echo toDecimal($binary) . "\n";
 
// This code is contributed by ita_c
?>


Javascript




<script>
 
// Recursive JavaScript program to convert binary
// decimal
 
    function toDecimal(binary,i)
    {
        // If we reached last character
        let n = binary.length;
        if (i == n-1)
            return binary[i] - '0';
           
        // Add current tern and recur for
        // remaining terms
        return ((binary[i] - '0') << (n-i-1)) +
                toDecimal(binary, i+1);
    }
     
    // Driver code
    let binary = "1010";   
    let i=0;
    document.write(toDecimal(binary,i));
     
 
 
// This code is contributed by avanitrachhadiya2155
 
</script>


Output: 

10

 

Time complexity: O(N) where N is the length of binary string
Auxiliary space: O(N) for recursive stack space.



Last Updated : 30 Sep, 2022
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads