Насколько я понимаю, uint64_t, определенный C99 (stdint.h), определен длиной 8 байт (= 64 бита), что позволяет максимально использовать значение 2 ^ 64 - 1. Однако, когда я пытаюсь выполнить следующее фрагмент кода, uint64_t переполняется, даже если он далеко не 2 ^ 64 - 1:
uint64_t Power10(int exponent)
{
int i = 1;
uint64_t ret = 10;
while(i < exponent)
{
ret *= 10;
++i;
}
return ret;
}
Помощь будет очень цениться.