Programmer un "& Logic" (( ET logiqu

Résolu/Fermé
Kill_Win Messages postés 15 Date d'inscription jeudi 12 février 2009 Statut Membre Dernière intervention 30 avril 2009 - 17 févr. 2009 à 16:48
Kill_Win Messages postés 15 Date d'inscription jeudi 12 février 2009 Statut Membre Dernière intervention 30 avril 2009 - 17 févr. 2009 à 17:53
Bonjour à toutes && à tous,


J'ai un petit soucis de programmation, j'ai une donnée codée sur 8 bits je ne souhaite utiliser que les 5 premiers (les 3 derniers prennent des valeurs aléatoires).

Je ne souhaite pas faire un case qui teste toutes les valeurs prisent par les 3 bits qui ne m'intéressent pas. On m'a soufflé que je pouvais programmer un """& logic""".

Puis je avoir un coup de main pour programmer cela????


merci d'avance!!!
A voir également:

4 réponses

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
17 févr. 2009 à 17:07
Salut,
Non pas un ET logique, mais un ET binaire ;).
Par exemple :
a = 0b10110100
a&0b11111000 te retournera 0b10110000

Si tu veux avoir 0b10110(sans les 000), tu peux utiliser tout simplement l'opérateur de décalage.
Par exemple
a = 0b10110100
a>>3 te retournera 0b10110

Ce qui est plus pratique.
0
Kill_Win Messages postés 15 Date d'inscription jeudi 12 février 2009 Statut Membre Dernière intervention 30 avril 2009
17 févr. 2009 à 17:36
Merci de ton aide FIDDY!!

Et c'est bien notée pas ""ET logic"" Mais ""ET binaire""

Je vais utiliser la première méthode car je veux mettre à 0 les Bits de poids Fort.

en fait j'ai DATA=0bxxx1.1110 ( avec xxx valeur aléatoire) et je souhaite avoir
DATA=0b0001.1110 (quelque soit la valeur de xxx).

donc

DATA = DATA & 0b0001.1111;

Normalement DATA vaudra bien la valeur souhaité

Merci de me re répondre pour que je soit sur d'avoir bien compris
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
17 févr. 2009 à 17:44
T'as parfaitement compris ;)
Par contre, il est possible que ton langage de programmation n'accepte pas le binaire. Dans ce cas, tu le convertis dans la base adéquate (hex ou déc).
En C par exemple :
a& 31 
ou
a&0x1f
0
Kill_Win Messages postés 15 Date d'inscription jeudi 12 février 2009 Statut Membre Dernière intervention 30 avril 2009
17 févr. 2009 à 17:53
Merci beaucoup

Aurevoir
0