Der Inhalt dieses Artikels handelt davon, wie PHP die ganzzahlige Kraft numerischer Werte erkennt (Codebeispiele). Ich hoffe, dass dies der Fall ist hilfreich sein.
Gegeben sei eine Gleitkommazahlenbasis vom Typ double und ein ganzzahliger Exponent vom Typ int. Finden Sie die Exponentenpotenz der Basis.
Ideen:
1. Der binäre Ausdruck des Exponenten hoch 10^6 kann 10^110 (binär) 10^100 * 10^10 * 10^000=> darstellen ;10^4 * 10^2
2. Schichtbetrieb
while(n!=0){ if((n&1)==1) res*=curr; curr*=curr;// 翻倍 n>>=1;// 右移一位 }
<?php function Power($base, $n){ $res = 1; $curr = $base; $exponent; if($n>0){ $exponent = $n; }else if($n<0){ if($base==0) return 0; $exponent = -$n; }else{// n==0 return 1;// 0的0次方 } //$exponent转成二进制,有多少位就循环多少次,curr就执行n+1次方,如果当前位是1的就结果相乘 while($exponent!=0){ if(($exponent&1)==1) $res*=$curr; $curr*=$curr;// 翻倍 //var_dump($curr); $exponent>>=1;// 右移一位 } return $n>=0?$res:(1/$res);//指数是负数的情况 } $a=Power(10,6); var_dump($a); ~
Das obige ist der detaillierte Inhalt vonSo implementieren Sie eine ganzzahlige Potenz eines numerischen Werts in PHP (Codebeispiel). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!