Programmer un "& Logic" (( ET logiqu

Résolu
Kill_Win Messages postés 15 Date d'inscription   Statut Membre Dernière intervention   -  
Kill_Win Messages postés 15 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Contributeur Dernière intervention   1 846
 
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   Statut Membre Dernière intervention  
 
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   Statut Contributeur Dernière intervention   1 846
 
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   Statut Membre Dernière intervention  
 
Merci beaucoup

Aurevoir
0