IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Operation Logique Binaire


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 92
    Points : 52
    Points
    52
    Par défaut Operation Logique Binaire
    Bonjour,
    Je cherche (desesperement) a trouver une commande qui me fasse des operations Logique AND ou OR au niveau bit ou Byte.
    Exemple: A=1000, B=0010
    C=A OR B ... devrait etre C=1010

    Est-ce que qq connait ce type de fonction ou faut-il les creer ?

    Merci de votre aide.

  2. #2
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 535
    Points
    5 535
    Par défaut
    0010 n'étant pas une expression numérique pure, 0010 sera évalué à 10 et ton résultat sera donc forcément 1002 ...

    Je te rappelle que OR évalue deux expressions numériques

    si tu tiens à évaluer également les "0" qui sont devant le 10 de 0010, il te faudra évaluer chaque caractère numérique, un par un de la chaîne A et de la chaine B ("0010" avec "1000") et concaténer les résultats...

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 92
    Points : 52
    Points
    52
    Par défaut
    Oui ! En fait je cherche a faire des operations (OR ou AND) en binaire au niveau byte ou au niveau bit.
    D'apres ta reponse, il n'existe rien, et il faut la creer. C'est ca ?

  4. #4
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    il me semble bien que tu peux utiliser And Or Xor au niveau du Bit (cf. l'aide en ligne).
    Ne mettez pas "Problème" dans vos titres, par définition derrière toute question se cache un problème
    12 tutoriels Access



  5. #5
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 535
    Points
    5 535
    Par défaut
    Si tu tiens à compararer (en bitwise) "1000" avec "0010", en vue d'obtenir "1010"
    voilà l'illustration de la décomposition dont je t'ai parlé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub Command1_Click()
      Dim A As String, B As String, C As String, titi() As Byte, toto() As Byte
      A = "1000"
      B = "0010"
      titi = StrConv(A, vbFromUnicode)
      toto = StrConv(B, vbFromUnicode)
      C = ""
      For i = 0 To Len(A) - 1
        C = C & (Chr(titi(i)) Or Chr(toto(i)))
      Next
      MsgBox C
    End Sub

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 92
    Points : 52
    Points
    52
    Par défaut
    Merci ! Je viens de trouver sur un site US. La reponse est si ca interresse qq:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Public Function HEXOR(A As String, B As String) As String
    HEXOR = Hex(CLng("&H" & A) Or CLng("&H" & B))
    End Function

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Opérations booléennes et logique binaire en PHP
    Par Invité dans le forum Langage
    Réponses: 0
    Dernier message: 10/03/2011, 16h48
  2. Réponses: 1
    Dernier message: 11/09/2005, 02h04
  3. Réponses: 6
    Dernier message: 28/07/2005, 21h14
  4. Operations en binaire
    Par Freakazoid dans le forum C++
    Réponses: 4
    Dernier message: 07/08/2004, 09h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo