# Recursive Program for Binary to Decimal

• Difficulty Level : Medium
• 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.

## C++

 `// Recursive CPP program to convert binary``// decimal``#include``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

 ``

## Javascript

 ``

Output:

`10`

My Personal Notes arrow_drop_up