Given an integer **N**, the task is to find the decimal value of the binary string formed by concatenating the binary representations of all numbers from **1 to N** sequentially.

**Examples:**

Input:N = 12Output:118505380540Explanation:The concatenation results in “1101110010111011110001001101010111100”. The equivalent decimal value is 118505380540.

Input:N = 3Output:27Explanation:In binary, 1, 2, and 3 corresponds to “1”, “10”, and “11”. Their concatenation results in “11011”, which corresponds to the decimal value of 27.

**Approach:**The idea is to iterate over the range **[1, N]**. For every **i ^{th}** number concatenate the binary representation of the number

**i**using the Bitwise XOR property. Follow the steps below to solve the problem:

- Initialize two variables,
**l**and**ans**with**0**, where**l**stores the current position of the bit in the final binary string of any**i**number and^{th}**ans**will store the final answer. - Iterate from
**i = 1 to N + 1**. - If
**(i & ( i – 1 ))**is equal to**0**, then simply increment the value of**l**by**1**, where**&**is the Bitwise AND operator. - After that, left shift
**ans**by**l**and then bitwise OR the result with**i**. - After traversing, print
**ans**as the answer.

Below is the implementation of the above approach:

## C++

`// C++ program for the above approach` `#include <bits/stdc++.h>` `using` `namespace` `std;` `// Function to find the decimal value by` `// concatenating the numbers from 1 to N` `int` `concatenatedBinary(` `int` `n)` `{` ` ` `// Stores count of` ` ` `// bits in a number` ` ` `int` `l = 0;` ` ` `// Stores decimal value by` ` ` `// concatenating 1 to N` ` ` `int` `ans = 0;` ` ` `// Iterate over the range [1, n]` ` ` `for` `(` `int` `i = 1; i < n + 1; i++){` ` ` `// If i is a power of 2` ` ` `if` `((i & (i - 1)) == 0)` ` ` `l += 1;` ` ` `// Update ans` ` ` `ans = ((ans << l) | i);` ` ` `}` ` ` `// Return ans` ` ` `return` `ans;` `}` `// Driver Code` `int` `main()` `{` ` ` `int` `n = 3;` ` ` `// Function Call` ` ` `cout << (concatenatedBinary(n));` ` ` `return` `0;` `}` `// This code is contributed by mohiy kumar 29` |

*chevron_right*

*filter_none*

## Java

`// Java program for the above approach` `class` `GFG` `{` ` ` ` ` `// Function to find the decimal value by` ` ` `// concatenating the numbers from 1 to N` ` ` `static` `int` `concatenatedBinary(` `int` `n)` ` ` `{` ` ` ` ` `// Stores count of` ` ` `// bits in a number` ` ` `int` `l = ` `0` `;` ` ` ` ` `// Stores decimal value by` ` ` `// concatenating 1 to N` ` ` `int` `ans = ` `0` `;` ` ` ` ` `// Iterate over the range [1, n]` ` ` `for` `(` `int` `i = ` `1` `; i < n + ` `1` `; i++){` ` ` ` ` `// If i is a power of 2` ` ` `if` `((i & (i - ` `1` `)) == ` `0` `)` ` ` `l += ` `1` `;` ` ` ` ` `// Update ans` ` ` `ans = ((ans << l) | i);` ` ` `}` ` ` ` ` `// Return ans` ` ` `return` `ans;` ` ` `}` ` ` ` ` `// Driver Code` ` ` `public` `static` `void` `main (String[] args)` ` ` `{` ` ` `int` `n = ` `3` `;` ` ` ` ` `// Function Call` ` ` `System.out.println(concatenatedBinary(n));` ` ` `}` `}` `// This code is contributed by AnkThon` |

*chevron_right*

*filter_none*

## Python3

`# Python program for the above approach` `# Function to find the decimal value by ` `# concatenating the numbers from 1 to N ` `def` `concatenatedBinary(n):` ` ` `# Stores count of ` ` ` `# bits in a number` ` ` `l ` `=` `0` ` ` `# Stores decimal value by` ` ` `# concatenating 1 to N ` ` ` `ans ` `=` `0` ` ` `# Iterate over the range [1, n]` ` ` `for` `i ` `in` `range` `(` `1` `, n ` `+` `1` `): ` ` ` `# If i is a power of 2` ` ` `if` `i & (i ` `-` `1` `) ` `=` `=` `0` `: ` ` ` `# Update l` ` ` `l ` `+` `=` `1` ` ` `# Update ans` ` ` `ans ` `=` `((ans << l) | i) ` ` ` `# Return ans` ` ` `return` `(ans) ` `# Driver Code` `if` `__name__ ` `=` `=` `'__main__'` `:` ` ` `n ` `=` `3` ` ` `# Function Call` ` ` `print` `(concatenatedBinary(n))` |

*chevron_right*

*filter_none*

## C#

`// C# program to implement` `// the above approach ` `using` `System;` `class` `GFG` `{` ` ` ` ` `// Function to find the decimal value by` ` ` `// concatenating the numbers from 1 to N` ` ` `static` `int` `concatenatedBinary(` `int` `n)` ` ` `{` ` ` ` ` `// Stores count of` ` ` `// bits in a number` ` ` `int` `l = 0;` ` ` ` ` `// Stores decimal value by` ` ` `// concatenating 1 to N` ` ` `int` `ans = 0;` ` ` ` ` `// Iterate over the range [1, n]` ` ` `for` `(` `int` `i = 1; i < n + 1; i++)` ` ` `{` ` ` ` ` `// If i is a power of 2` ` ` `if` `((i & (i - 1)) == 0)` ` ` `l += 1;` ` ` ` ` `// Update ans` ` ` `ans = ((ans << l) | i);` ` ` `}` ` ` ` ` `// Return ans` ` ` `return` `ans;` ` ` `}` ` ` ` ` `// Driver Code` ` ` `public` `static` `void` `Main ()` ` ` `{` ` ` `int` `n = 3;` ` ` ` ` `// Function Call` ` ` `Console.WriteLine(concatenatedBinary(n));` ` ` `}` `}` `// This code is contributed by sanjoy_62` |

*chevron_right*

*filter_none*

**Output:**

27

**Time Complexity:** O(N)**Auxiliary Space:** O(1)