#include <iostream>
#include <string.h>
#include <vector>
using namespace std;

unsigned long long stringToNumber(string const& s)
{
	size_t i = 0;
	unsigned long long num = 0;
	for (auto it = s.rbegin(); it != s.rend(); ++it, ++i )
	{
		if (*it != '0')
		{
			num += 1ULL << i;
		}
	}

	return num;
}

int getStepsTo1(unsigned long long num)
{
	long int count = 0;
	while (num != 1 )
	{
        if (num % 2 == 0)
            num /= 2;
        else
            num += 1;
        count += 1;
	}
	return count;
}

int main()
{
    string s = "1111011110000011100000110001011011110010111001010111110001";
    unsigned long long int dec = stringToNumber(s);
    cout << "Number: " << dec << endl;
    //  dec = 278675673186014705;

	 int count = getStepsTo1(dec);
    cout << "Steps to 1: " << count << endl;
    return 0;
}

