Вместо того, чтобы вычислять цифры, вы можете получить то, что вы хотите, преобразовав его в строку:
// This converts the binary representation of the long into a string.
std::stringstream ss;
ss << long_number;
std::string number_as_string = ss.str();
// Then visit all the characters of the string.
for (std::string::const_iterator it = number_as_string.begin();
it != number_as_string.end();
++it)
{
std::cout << *it << std::endl;
}
Это напечатает числа, скажем, если у вас есть 12345:
1
2
3
4
5
Таким образом, вы можете обработать каждый из них, обращаясь к итератору *it
как приведенный выше код.