C言語なら俺に聞け! Part 109
■ このスレッドは過去ログ倉庫に格納されています
0367361
2005/06/26(日) 19:24:26>>362のアドバイスを基に改良
double pow2(int x, int n) {
unsigned int bit = 1U << sizeof(unsigned int) * CHAR_BIT - 1;
double result = 1.;
if (n < 0) return 1./pow2(x, -n);
do {
result *= result;
if (bit & n) result *= x;
} while (bit >>= 1);
return result;
}
■ このスレッドは過去ログ倉庫に格納されています