#include <iostream>

unsigned count_digits(unsigned value, unsigned base = 10)
{
    unsigned n_digits = 0;
    do
    {
        ++n_digits;
        value /= base;
    } while (value);

    return n_digits;
}

void print_digit_count(unsigned value)
{
    std::cout << "In base 10, " << value << " has " << count_digits(value) << " digits.\n";
    std::cout << "In base 2, " << value << " has " << count_digits(value, 2) << " digits.\n";
    std::cout << "In base 16, " << value << " has " << count_digits(value, 16) << " digits.\n\n";
}

int main()
{
    print_digit_count(56);
    print_digit_count(0);
    print_digit_count(1);
    print_digit_count(128);
    print_digit_count(0xFFFF);
}