Position actuelle: Accueil> Derniers articles> Comment utiliser la fonction Bindec () de PHP combinée avec decbin () pour déterminer si un certain binaire est 1?

Comment utiliser la fonction Bindec () de PHP combinée avec decbin () pour déterminer si un certain binaire est 1?

M66 2025-06-23

Dans la programmation PHP, lors du traitement des données binaires, il est souvent nécessaire de déterminer si un binaire binaire est 1. PHP fournit deux fonctions très pratiques: Bindec () et DeCbin () , qui sont utilisées respectivement à la décimale et décimales en binaire. Cet article présentera comment combiner ces deux fonctions pour déterminer si un certain binaire est 1.

Introduction à Bindec () et decbin ()

  • bindec (String $ binary_string): int
    Convertit une chaîne binaire en entier décimal correspondant.

  • decbin (int $ décimal): chaîne
    Convertissez les entiers décimaux en chaîne binaire correspondante.

Par exemple:

 echo bindec("101");  // Sortir 5
echo decbin(5);      // Sortir "101"

Idées pour déterminer si un binaire est 1

Supposons que nous ayons un numéro décimal et que nous voulons dire si le bit $ POS (compté de droite à gauche, en comptant à partir de 0) dans sa représentation binaire est 1. L'idée de mise en œuvre est la suivante:

  1. Convertit un nombre en une chaîne binaire.

  2. Calculez l'index du bit cible en fonction de la longueur de chaîne.

  3. Vérifiez si le caractère bit est «1» .

Exemple de code

 <?php
function isBitSet($decimalNumber, $pos) {
    // Convertir la décimale en chaîne binaire
    $binaryString = decbin($decimalNumber);

    // Calculez l&#39;index de ce bit dans la chaîne,Une ficelle binaire est de gauche à droite à haut à bas
    $index = strlen($binaryString) - 1 - $pos;

    // Si l&#39;indice est inférieur à0,Indique que ce bit est hors de portée,Retour par défautfalse
    if ($index < 0) {
        return false;
    }

    // Déterminer si le bit correspondant est '1'
    return $binaryString[$index] === '1';
}

// test
$number = 13; // Le binaire est1101
$position = 2; // De la droite2Peu,0Index de base,En binaire, c&#39;est1
if (isBitSet($number, $position)) {
    echo "1 et 1 {$position} Peu是1";
} else {
    echo "1 et 1 {$position} Peu不是1";
}
?>

Sortir:

 1 et 1 2 Peu是1

Instructions supplémentaires

  • Le nombre de chiffres est compté de droite à gauche et le chiffre le plus bas est 0.

  • Lorsque vous utilisez decbin () pour convertir un nombre décimal en une chaîne binaire, la longueur de la chaîne peut être inférieure au nombre de bits attendu, et les bits dépassant la longueur sont considérés par défaut.

  • Si vous souhaitez juger plusieurs bits, vous pouvez combiner des boucles ou des opérations de bits.

Utilisez des opérations de bits au lieu des opérations de chaîne (recommandées)

Bien que l'utilisation de decbin () et de l'index de chaîne puisse atteindre des fonctions, l'efficacité de l'opération de bit est plus élevée et la méthode d'écriture est plus simple:

 function isBitSetBitwise($number, $pos) {
    return (($number >> $pos) & 1) === 1;
}

Vous pouvez également utiliser la fonction ci-dessus pour déterminer si un certain bit est 1.

Conclusion

Cet article présente comment utiliser les fonctions Bindec () et decbin () de PHP pour déterminer si un certain binaire est 1. Il est très utile pour l'apprentissage simple et la compréhension du traitement binaire, mais dans les projets réels, il est recommandé d'utiliser des opérations de bits pour améliorer les performances et la lisibilité au code.