<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// Dieser Teil des Codes hat nichts mit dem Inhalt des Artikels zu tun,Nur als Beispiel für Präfixcode</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Ausführung starten PHP Skript...\n"</span></span><span>;
</span><span><span class="hljs-meta">?></span></span><span>
<hr>
</span><span><span class="hljs-meta"><?php</span></span><span>
<span class="hljs-comment">/*
* base_convert() Bei der Verarbeitung einer negativen Binärumwandlung in der Funktion,Was sind die Vorsichtsmaßnahmen??
*
* base_convert() Ja PHP Eine integrierte Funktion,Wird verwendet, um numerische Zeichenfolgen zwischen verschiedenen Ziffern zu konvertieren。
* 它的函数签名Ja:string base_convert(string $number, int $from_base, int $to_base)
*
* Aber im tatsächlichen Gebrauch,base_convert() Es unterstützt keine direkte Verarbeitung negativer Zahlen。
* Das Folgende erläutert im Detail einige wichtige Punkte, um bei der Konvertierung negativer Zahlen und Teilzahlen darauf zu achten.。
*/</span>
</span><span><span class="hljs-comment">// 1. base_convert() Negative Eingaben werden nicht unterstützt</span></span><span>
</span><span><span class="hljs-comment">// base_convert() Erhalten $number 参数Ja字符串形式的数字,且该数字只能Ja非负整数。</span></span><span>
</span><span><span class="hljs-comment">// Wenn eine Zeichenfolge mit einem negativen Zeichen eingegeben wird(wie "-15"),Funktionen ignorieren negative Zeichen als illegale Charaktere,Verursacht falsche Ergebnisse。</span></span><span>
</span><span><span class="hljs-comment">// Beispiel</span></span><span>
</span><span><span class="hljs-variable">$negativeNumber</span></span><span> = </span><span><span class="hljs-string">"-15"</span></span><span>;
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">base_convert</span></span><span>(</span><span><span class="hljs-variable">$negativeNumber</span></span><span>, </span><span><span class="hljs-number">10</span></span><span>, </span><span><span class="hljs-number">2</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Ergebnis konvertieren(Mit einem negativen Zeichen eingeben): <span class="hljs-subst">$result</span></span></span><span>\n";
</span><span><span class="hljs-comment">// Das Ausgangsergebnis ignoriert das negative Vorzeichen,Entspricht der Konvertierung“15”,并不Ja期望的负数二进制表示。</span></span><span>
</span><span><span class="hljs-comment">// 2. Häufige Möglichkeiten, mit negativen Zahlen umzugehen</span></span><span>
</span><span><span class="hljs-comment">// Weil base_convert() Negative Konvertierung wird nicht unterstützt,通常的做法Ja先检测数字的正负号,</span></span><span>
</span><span><span class="hljs-comment">// Dann wird der absolute Wert auf binäre Weise konvertiert,Schließlich manuelles negatives Zeichen hinzufügen。</span></span><span>
</span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">base_convert_negative</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-keyword">string</span></span></span><span> </span><span><span class="hljs-variable">$number</span></span><span>, </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$from_base</span></span><span>, </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$to_base</span></span><span>): </span><span><span class="hljs-title">string</span></span><span> {
</span><span><span class="hljs-variable">$isNegative</span></span><span> = </span><span><span class="hljs-literal">false</span></span><span>;
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">strlen</span></span><span>(</span><span><span class="hljs-variable">$number</span></span><span>) > </span><span><span class="hljs-number">0</span></span><span> && </span><span><span class="hljs-variable">$number</span></span><span>[</span><span><span class="hljs-number">0</span></span><span>] === </span><span><span class="hljs-string">'-'</span></span><span>) {
</span><span><span class="hljs-variable">$isNegative</span></span><span> = </span><span><span class="hljs-literal">true</span></span><span>;
</span><span><span class="hljs-variable">$number</span></span><span> = </span><span><span class="hljs-title function_ invoke__">substr</span></span><span>(</span><span><span class="hljs-variable">$number</span></span><span>, </span><span><span class="hljs-number">1</span></span><span>);
}
</span><span><span class="hljs-variable">$converted</span></span><span> = </span><span><span class="hljs-title function_ invoke__">base_convert</span></span><span>(</span><span><span class="hljs-variable">$number</span></span><span>, </span><span><span class="hljs-variable">$from_base</span></span><span>, </span><span><span class="hljs-variable">$to_base</span></span><span>);
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-variable">$isNegative</span></span><span> ? </span><span><span class="hljs-string">'-'</span></span><span> . </span><span><span class="hljs-variable">$converted</span></span><span> : </span><span><span class="hljs-variable">$converted</span></span><span>;
}
</span><span><span class="hljs-comment">// prüfen</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">base_convert_negative</span></span><span>(</span><span><span class="hljs-string">"-15"</span></span><span>, </span><span><span class="hljs-number">10</span></span><span>, </span><span><span class="hljs-number">2</span></span><span>) . </span><span><span class="hljs-string">"\n"</span></span><span>; </span><span><span class="hljs-comment">// Ausgabe:-1111</span></span><span>
</span><span><span class="hljs-comment">// 3. Reichweite für die Binärumwandlung</span></span><span>
</span><span><span class="hljs-comment">// base_convert() 支持的进制范围Ja 2 ankommen 36。</span></span><span>
</span><span><span class="hljs-comment">// wie果试图转换超出这个范围的进制,Die Funktion gibt eine leere Zeichenfolge zurück。</span></span><span>
</span><span><span class="hljs-comment">// Also im Umgang mit negativen Zahlen,Es ist auch notwendig, sicherzustellen, dass die eingehende Abteilung legal ist。</span></span><span>
</span><span><span class="hljs-comment">// 4. Der partielle Ausdruck negativer Zahlen</span></span><span>
</span><span><span class="hljs-comment">// In einigen Szenarien,Es kann wünschenswert sein, negative Zahlen in Komplementform darzustellen。</span></span><span>
</span><span><span class="hljs-comment">// Aber base_convert() 只Ja简单转换数值,Keine Unterstützung für Ergänzung oder unterschriebene Konvertierung。</span></span><span>
</span><span><span class="hljs-comment">// wie果需要补码表示,Bit Operation und Formatierung müssen selbst behandelt werden。</span></span><span>
</span><span><span class="hljs-comment">// 5. Zusammenfassen</span></span><span>
</span><span><span class="hljs-comment">// - base_convert() Die direkte Umwandlung von Minus -Zahlen wird nicht unterstützt。</span></span><span>
</span><span><span class="hljs-comment">// - Negative Anzeichen müssen manuell getrennt werden,Absolutwert konvertieren,Fügen Sie ein negatives Zeichen hinzu。</span></span><span>
</span><span><span class="hljs-comment">// - Das System muss in sein 2 ankommen 36 zwischen。</span></span><span>
</span><span><span class="hljs-comment">// - Komplementcode oder andere negative binäre Darstellungen müssen selbst implementiert werden。</span></span><span>
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>