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.
L'idée de mise en œuvre est en fait très intuitive:
Itéère à travers la chaîne binaire d'entrée, de gauche à droite ou de droite à gauche.
Convertissez chaque caractère «0» ou «1» en valeur numérique correspondante.
Calculez la somme en fonction du poids binaire: chaque bit est multiplié par la puissance correspondante de 2.
Accumulent ces résultats et enfin obtenir le numéro décimal correspondant.
#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'il n'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
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.
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.