Position actuelle: Accueil> Derniers articles> Comment reproduire la fonction Bindec () de PHP dans Python

Comment reproduire la fonction Bindec () de PHP dans Python

M66 2025-05-29

Dans PHP, la fonction reindec () est utilisée pour convertir les chaînes binaires en nombres décimaux et est un outil très pratique lors du traitement des données binaires. Par exemple:

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

Il n'y a pas de fonction intégrée dans Python avec le même nom que Bindec () , mais nous pouvons implémenter la même fonction très simplement. Cet article utilisera plusieurs exemples pour expliquer en détail comment simuler la fonction Bindec () de PHP dans Python.

1. Méthode de mise en œuvre de base

La fonction intégrée de Python int () peut convertir les chaînes arbitraires en décimales, juste besoin de fournir la cardinalité correcte. Par exemple:

 binary_string = "1101"
decimal_number = int(binary_string, 2)
print(decimal_number)  # Sortir 13

Cet int (binary_string, 2) réalise le même effet que Bindec ("1101") .

2. Encapsulé en fonction

Pour être plus proche de la façon dont PHP est utilisé, nous pouvons encapsuler une fonction appelée bindec :

 def bindec(binary_string):
    try:
        return int(binary_string, 2)
    except ValueError:
        raise ValueError("La chaîne entrée n&#39;est pas un format binaire valide")

Comment l'utiliser est comme suit:

 print(bindec("1010"))  # Sortir 10

3. Mise en œuvre avancée des bits de symbole de gestion

Dans PHP, Bindec () traite la chaîne binaire comme une forme de complément et la convertit en un numéro décimal signé. Par exemple:

 echo bindec("11111111111111111111111111111111"); // Sortir -1

Dans ce cas, Bindec () traite tous les 32 bits 1s comme -1 (un entier signé). Pour obtenir des effets similaires dans Python, nous devons juger manuellement les bits de symbole:

 def bindec_signed(binary_string):
    length = len(binary_string)
    value = int(binary_string, 2)
    if binary_string[0] == '1':
        # Complément à signer
        value -= 1 << length
    return value

Exemple:

 print(bindec_signed("11111111111111111111111111111111"))  # Sortir -1
print(bindec_signed("10000000000000000000000000000000"))  # Sortir -2147483648

4. Comment déterminer la validité de l'entrée

Pour empêcher les chaînes illégales d'entrer, nous pouvons d'abord vérifier que la chaîne est en format binaire pur:

 def is_valid_binary(s):
    return all(c in '01' for c in s)

Utilisation en combinaison:

 def bindec_safe(binary_string):
    if not is_valid_binary(binary_string):
        raise ValueError("Chaîne binaire illégale")
    return int(binary_string, 2)

5. Recommandation d'outil de test en ligne

Pour vous faciliter pour tester ces codes sur les pages Web, vous pouvez utiliser un environnement d'exécution Python en ligne, par exemple:

Il vous suffit de copier le code ci-dessus sur une page Web pour exécuter pour obtenir les résultats, ce qui est très pratique pour le débogage.

6. Résumé

Bien que Python n'ait pas de fonction Bindec () intégrée, via la fonction int () et le traitement logique simple, nous pouvons simuler complètement cette fonction en PHP, et même la rendre plus puissante:

  • Les fonctions de base peuvent être réalisées par int (binaire, 2) ;

  • Si vous souhaitez simuler le comportement de complément de PHP, vous pouvez utiliser BindEC_Signed () ;

  • L'ajout d'exception et de manipulation de validité peut améliorer la robustesse.

J'espère que ce tutoriel peut vous aider à migrer avec succès la logique pertinente de Bindec () dans le développement transversal.