我想寫一個函數,它將返回下一個2的冪。所以如果輸入是18,它將返回32,這是系列2中大於18的下一個數字,4,8,16,32,64返回給定整數的下一個最接近的2的冪
如果輸入爲40它將返回64
目前我使用下面的函數:
switch($number) {
case in_array($number, range(0, 2)):
return 2;
break;
case in_array($number, range(3, 4)):
return 4;
break;
case in_array($number, range(5, 8)):
return 8;
break;
case in_array($number, range(9, 16)):
return 16;
break;
case in_array($number, range(17, 32)):
return 32;
break;
}
儘管上述作品很好,但你可以看到它不是一個非常優雅的解決方案,並有其侷限性。只是想知道是否有一個內置的PHP函數或一些更好的方法。
謝謝。
循環連續的兩次冪,直到你得到大於'$ number'的東西 –
1是2的冪。 –