Position actuelle: Accueil> Derniers articles> Comment implémenter la fonction reindec () en PHP en C?

Comment implémenter la fonction reindec () en PHP en C?

M66 2025-07-08

Dans PHP, la fonction Bindec () est utilisée pour convertir une chaîne binaire en un entier décimal correspondant. Par exemple:

 <?php
echo bindec("1101"); // Sortir 13
?>

Cela nous permet de convertir facilement les données binaires en chiffres décimaux, ce qui facilite les calculs de suivi.


Cependant, la bibliothèque standard du langage C ne fournit pas directement une telle fonction, donc si nous voulons implémenter des fonctions similaires dans le langage C, nous devons écrire notre propre code pour terminer cette transformation. Ci-dessous, je présenterai en détail comment implémenter la fonction de bindec () dans le langage C.


Idées de mise en œuvre de la fonction bindec () dans le langage C

L'idée de mise en œuvre est en fait très intuitive:

  1. Itéère à travers la chaîne binaire d'entrée, de gauche à droite ou de droite à gauche.

  2. Convertissez chaque caractère «0» ou «1» en valeur numérique correspondante.

  3. Calculez la somme en fonction du poids binaire: chaque bit est multiplié par la puissance correspondante de 2.

  4. Accumulent ces résultats et enfin obtenir le numéro décimal correspondant.


Exemple de code

 #include <stdio.h>
#include <string.h>

// Convertir la chaîne binaire en entier décimal
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;  // Déplacer une gauche,Ajouter le bit actuel1
        } else if (c == '0') {
            result = result << 1;  // Déplacer une gauche,Ajouter le bit actuel0
        } else {
            // S&#39;il n&#39;y a pas '0' ou '1' personnage,可以返回错误ou忽略
            // Traitement simple ici,Retourner directement0,Peut être amélioré dans une utilisation réelle
            return 0;
        }
    }
    return result;
}

int main() {
    const char *binaryStr = "1101";
    unsigned int decimalValue = bindec(binaryStr);
    printf("二进制personnage串 %s Le système décimal correspondant est %u\n", binaryStr, decimalValue);
    return 0;
}

Effet de course:

 二进制personnage串 1101 Le système décimal correspondant est 13

Analyse de code

  • Strlen est utilisé pour obtenir la longueur de la chaîne.

  • Itérer à travers chaque caractère de la chaîne:

    • S'il s'agit de «1», déplacez d'abord le résultat actuel vers la gauche par un (équivalent à multiplier par 2), puis ajoutez 1.

    • S'il est «0», il ne déplacera qu'un à gauche et aucune valeur n'est ajoutée.

  • Enfin, le résultat accumulé est retourné.

Cela simule parfaitement le comportement de la fonction reindec () en php.


résumé

Bien que le langage C ne disposait pas du Binalc () intégré, la fonction binaire à décimal peut être facilement implémentée via des opérations de bit simples et une traversée de chaîne. La maîtrise de cette idée peut non seulement nous aider à effectuer des transformations de base, mais aussi approfondir notre compréhension des opérations binaires et bits.