Skip to content
Related Articles

Related Articles

Improve Article

Recursive Program for Binary to Decimal

  • Difficulty Level : Easy
  • Last Updated : 28 May, 2021

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

 

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.  To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

In case you wish to attend live classes with experts, please refer DSA Live Classes for Working Professionals and Competitive Programming Live for Students.




My Personal Notes arrow_drop_up
Recommended Articles
Page :