舉個例子:2^7=2^(4+2+1)=(2^4)*(2^2)*(2^1);
而7的二進制表示方法爲111。
也就是只有在二進制數位上爲1時乘一個2^n,而在二進制數位上爲0時,則不乘。
int pow3(int x, int n)
{
int result = 1;
while (n > 0)
{
if (n & 1) // n的最後位數爲1時,結果乘以x
result *= x;
n >>= 1; // 指數右移一位
x *= x; //指數右移後,相當於乘了1個x。
}
return result;
}