Uncountable Bits

I came across this question in one of the interviews. I struggled to clear all the test cases and was hoping to know if someone has a better solution for this question:
Given a number N in form of a binary string (1<=N<=210^5), count total set bits in all numbers from 1 to N.
I have tried solving the problem using this algorithm but was able to clear only a few test cases.
Really appreciate the help!

int getSetBitsFromOneToN( int N){

int two = 2,ans = 0;

int n = N;

while (n){

ans += (N/two)*(two>>1);

if ((N&(two-1)) > (two>>1)-1) ans += (N&(two-1)) - (two>>1)+1;

two <<= 1;

n >>= 1;


return ans;


USE THIS it will work in O(logn)

N is a string not an integer, this solution won’t work.