DDD, что-то как-то сложно. Зачем переводить числа в строку, а затем строку пытатся переводить в двоичное число? Если вам надо число перевести в двоичную форму используйте std::bitset
Ваш код можно сделать проще и работать он будет правильно.
DDD, по вашему коду сложно сказать, т.к. не понятно что подается на вход. Вынесети код в отдельную функцию, чтобы ее можно было протестировать unit тестом.
Никита Савченко, Вы не можете вернуть несколько значений из функции. Вы должны либо вернуть какой-то объект (сейчас вы возвращаете vector), либо возвращать значения через параметры. Смотрите здесь