**Problem Statement:** Convert a binary number to a decimal number.

**Examples:**

Example 1:Input:N = 1011Output:11Explanation:1011 when converted to decimal number is “11”.Example 2:Input:100Output:4Explanation:100 when converted to decimal number is “4”.

**Solution:**

** Disclaimer**:

*Don’t jump directly to the solution, try it out yourself first.*

**Solution 1:**

**Intuition: **The idea is to add the appropriate power of 2 to the final answer, whenever the bit is set.

**Approach:**

- Take the input as a string.
- Traverse from rightmost character to left.
- Maintain a integer base and multiply it by 2 everytime,to store values of pow(2,i).
- Now check if char is ‘1’ or ‘0’,if it is ‘1’ add base to your final answer.

**Code:**

## C++ Code

```
#include<bits/stdc++.h>
using namespace std;
int main() {
string s = "1011";
int n = s.length();
int base = 1;
int ans = 0;
for (int i = n - 1; i >= 0; i--) {
if (s[i] == '1') {
ans += base;
}
base *= 2;
}
cout << ans;
}
```

**Output:** 11

**Time Complexity:** O(N), as we are iterating over just one for a loop.

**Space Complexity:** O(1).

## Java Code

```
public class Main {
public static void main(String args[]) {
String s = "1011";
int n = s.length();
int base = 1;
int ans = 0;
for (int i = n - 1; i >= 0; i--) {
if (s.charAt(i) == '1') {
ans += base;
}
base *= 2;
}
System.out.print(ans);
}
}
```

**Output:** 11

**Time Complexity:** O(N), as we are iterating over just one for a loop.

**Space Complexity:** O(1).

**Solution 2: Using predefined functions.**

**For C++:**

**Syntax:** stoi(string s, int position, int base)

**Approach: **Position will be 0 since it is the starting position and base will be 2 since the input is in binary.

**For Java:**

**Syntax:** Integer.parseInt(String s,int base)

**Approach:** Base will be 2 since the input is in binary

**Code:**

.

## C++ Code

```
#include<bits/stdc++.h>
using namespace std;
int main() {
string s = "1011";
cout << stoi(s, 0, 2);
}
```

**Output:** 11

**Time Complexity: **O(N).

**Space Complexity:** O(1).

## Java Code

```
public class Main {
public static void main(String args[]) {
String s = "1011";
System.out.print(Integer.parseInt(s, 2));
}
}
```

**Output:** 11

**Time Complexity: **O(N).

**Space Complexity:** O(1).

Special thanks to Pranav Padawe for contributing to this article on takeUforward. If you also wish to share your knowledge with the takeUforward fam,please check out this article