Dieses Mal zeige ich Ihnen, wie man binäre Algorithmen in PHP zählt. Was sind die Vorsichtsmaßnahmen für PHP, um binäre Algorithmen zu zählen?
Wie implementiert man den Algorithmus zum Zählen der Zahl 1 im Binärformat in PHP? Dieser Artikel stellt Ihnen den Beispielcode von PHP vor, um den statistischen Algorithmus der Zahl 1 im Binärformat zu implementieren.
Frage
Geben Sie eine dezimale Ganzzahl ein und geben Sie die Anzahl der Einsen in der binären Darstellung dieser Zahl aus. Negative Zahlen werden im Zweierkomplement ausgedrückt.
Lösungsideen
Dies ist eine Frage zu Bitoperationen.
Lösung 1: Sie können die bitweise UND-Verknüpfung verwenden, um die Zahl 1 zu ermitteln, indem Sie jedes Bit und 1 UND-verknüpfen.
Lösung 2 (optimale Lösung): Eine clevere Methode, die nicht 0 ist, muss mindestens eine Ziffer haben, die 1 ist. Wenn diese Zahl um eins reduziert wird, wird ihre letzte Ziffer, 1, zu 0. Alle Nachfolgende Nullen werden in Einsen geändert. Beispielsweise wird 10100 nach der Subtraktion von eins zu 10011. Nach der UND-Verknüpfung der ursprünglichen Zahlen 10100 und 10011 erhalten Sie 10000. Das heißt, durch diese Operation können Sie eine 1 in eine 0 ändern, also wie oft kann eine Binärzahl geändert werden Anzahl tun dies? Es gibt so viele Operationen wie 1.
Implementierungscode
//解法一 function NumberOf1($n) { $count = 0; $flag = 1; while ($flag != 0) { if (($n & $flag) != 0) { $count++; } $flag = $flag << 1; } return $count; }
// 解法二 function NumberOf1($n) { $count = 0; if($n < 0){ // 处理负数 $n = $n&0x7FFFFFFF; ++$count; } while($n != 0){ $count++; $n = $n & ($n-1); } return $count; }
//测试 $num=45; echo $num."的二进制是".decbin($num)."<br/>"; echo $num."共有".NumberOf1($num)."个1";
Ich glaube, dass Sie die Methode beherrschen, nachdem Sie den Fall in diesem Artikel gelesen haben, bitte Achten Sie auf andere verwandte Themen im chinesischen PHP-Website-Artikel!
Empfohlene Lektüre:
Detaillierte Erläuterung der Verwendung von Callback-Funktionen in PHP
So verwenden Sie die Funktion file_put_contents in PHP
Das obige ist der detaillierte Inhalt vonSo zählen Sie binäre Algorithmen in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!