In PHP wird die BindEc () -Funktion verwendet, um eine binäre Zeichenfolge in eine entsprechende Dezimalzahlung umzuwandeln. Zum Beispiel:
<?php
echo bindec("1101"); // Ausgabe 13
?>
Dies ermöglicht es uns, binäre Daten leicht in Dezimalzahlen umzuwandeln, was die Nachuntersuchungsberechnungen erleichtert.
Die C -Language -Standardbibliothek von C -Sprache bietet jedoch keine solche Funktion. Wenn wir also ähnliche Funktionen in der C -Sprache implementieren möchten, müssen wir unseren eigenen Code schreiben, um diese Transformation abzuschließen. Im Folgenden werde ich detailliert einführen, wie die Funktion von Bindec () in der C -Sprache implementiert wird.
Die Implementierungsidee ist eigentlich sehr intuitiv:
Iteriert durch die Binärquelle der Eingabe, links nach rechts oder rechts nach links.
Konvertieren Sie jedes Zeichen '0' oder '1' in den entsprechenden numerischen Wert.
Berechnen Sie die Summe nach Binärgewicht: Jedes Bit wird mit der entsprechenden Leistung von 2 multipliziert.
Akkumulieren Sie diese Ergebnisse und erhalten Sie schließlich die entsprechende Dezimalzahl.
#include <stdio.h>
#include <string.h>
// Umwandeln
unsigned int bindec(const char *binaryStr) {
unsigned int result = 0;
int len = strlen(binaryStr);
for (int i = 0; i < len; i++) {
char c = binaryStr[i];
if (c == '1') {
result = (result << 1) | 1; // Bewegen Sie eine links,Fügen Sie das aktuelle Bit hinzu1
} else if (c == '0') {
result = result << 1; // Bewegen Sie eine links,Fügen Sie das aktuelle Bit hinzu0
} else {
// Wenn es nicht gibt '0' oder '1' Charakter,可以返回错误oder忽略
// Einfache Verarbeitung hier,Direkt zurückkehren0,Kann im tatsächlichen Gebrauch verbessert werden
return 0;
}
}
return result;
}
int main() {
const char *binaryStr = "1101";
unsigned int decimalValue = bindec(binaryStr);
printf("二进制Charakter串 %s Das entsprechende Dezimalsystem ist %u\n", binaryStr, decimalValue);
return 0;
}
Laufeffekt:
二进制Charakter串 1101 Das entsprechende Dezimalsystem ist 13
Strlen wird verwendet, um die Saitenlänge zu erhalten.
Iterieren Sie durch jedes Zeichen der Zeichenfolge:
Wenn es sich um '1' handelt, bewegen Sie zuerst das aktuelle Ergebnis links nach einem (gleichwertig mit 2 multiplizieren) und fügen Sie dann 1 hinzu.
Wenn es '0' ist, verschiebt es nur einen linken und wird kein Wert hinzugefügt.
Schließlich wird das akkumulierte Ergebnis zurückgegeben.
Dies simuliert perfekt das Verhalten der BindEc () -Funktion in PHP.
Obwohl die C-Sprache nicht über den integrierten Bindec () verfügt, kann die Binär- bis Dezimalfunktion einfach durch einfache Bitoperationen und String-Traversal implementiert werden. Das Beherrschen dieser Idee kann uns nicht nur helfen, grundlegende Transformationen abzuschließen, sondern auch unser Verständnis von binären und Bit -Operationen zu vertiefen.