Partage
  • Partager sur Facebook
  • Partager sur Twitter

Signification operation bit a bit

Sujet résolu
    19 octobre 2018 à 15:53:29

    hello,

    Je me suis retrouvé devant un opérateur bit à bit '&' dans une requête SQL dont je ne comprend pas le sens. Je sais ce qu'il fait mais je ne comprend pas pourquoi il est utilisé.

    je voulais savoir si des gens ici connaissent sont utilité.

    SELECT m.`id_module`, module_shop.enable_device 
    FROM `module` m 
    INNER JOIN module_shop ON (module_shop.id_module = m.id_module AND module_shop.id_shop = 4 AND module_shop.enable_device & 1)

    A quoi sert l'opération module_shop.enable_device & 1 ?

    -
    Edité par Cobs 19 octobre 2018 à 16:04:18

    • Partager sur Facebook
    • Partager sur Twitter
      19 octobre 2018 à 17:13:03

      Bonjour, je pense qu'il fait comme dans les autres langages:

      Il permet d'extraire le dernier bit de la variable.

      ici le dernier bit de module_shop.enable_device.

      par exemple si module_shop.enable_device vaut 5 soit en binaire 0000 0101

      faire un &1 fera l'operation:

         0000 0101

      & 0000 0001

      = 0000 0001

      • Partager sur Facebook
      • Partager sur Twitter
        19 octobre 2018 à 17:32:54

        oui, oui, je comprend bien l'opération. mais je n'ai aucune idée de pourquoi elle est faite.

        Ca vérifie que enable_device est un nombre impaire en décimal ? ou un truc du genre ?

        • Partager sur Facebook
        • Partager sur Twitter
          21 octobre 2018 à 7:27:03

          bonjour 
          L" operateur sur les bit (O.S.B.) &  sert  a vérifier si un flag ou un jeu de flag ( le bits) sont true ou false.
          ici il sert a savoir si un nombre est pair ou impair.
          parceque chaque nombre ou chiffre impair a le bit 0  ( zéro) a true. ( le bit zero etant le bit le plus a droite) donc on veut verifier si le bit zero est a true sachant que l'opération operande1 & operande2 
          retourne un nombre dont la valeur est déterminée par comparaison des bit numériques un a un. Si un bit est a 1 dans chaque opérande le bit correspondant sera défini a 1 dans le résultat.

          Sinon il sera défini a 0.

          exemple 12 en binaire s'ecrit 1100  dont si on fait 12 & 1 soit 
          1100

          &

          0001 
          donne zero (false) donc le nombre est pair.

          avec 13

          1101

          &

          1

          donne 1 le bit zero est a true donc le n ombre est impair.

          • Partager sur Facebook
          • Partager sur Twitter
            22 octobre 2018 à 12:13:13

            C'est plus ou moins ce a quoi je me doutais. merci.
            • Partager sur Facebook
            • Partager sur Twitter

            Signification operation bit a bit

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown