vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 10 déc. 2004 à 12:11
Rien du tout ou mauvais résultat? Si tu inverse tout, ca va aussi inverser les 0 de poids fort, donc tu n'aura pas le résultat voulu. Pour faire ce que tu veux, il faux que tu inverses tous les bits a partir du premier 1 rencontré en commencant par la gauche
racpp
Messages postés1909Date d'inscriptionvendredi 18 juin 2004StatutModérateurDernière intervention14 novembre 201417 10 déc. 2004 à 13:52
Salut,
Tout à fait, tu ne peux pas mettre ~ entre deux variables. Cet opérateur inverse les bits d'une seule variable:
result = ~ancienne;
Si ancienne vaut 01111111 alors result vaudra 10000000.
Vous n’avez pas trouvé la réponse que vous recherchez ?
alainfernandez
Messages postés5Date d'inscriptionjeudi 2 décembre 2004StatutMembreDernière intervention10 décembre 2004 10 déc. 2004 à 16:25
merci voila ce que j'ai
a=136 b=9
resultat du ou exclusif =129 ok
result du et 128 mais il me rend en decimal -129
d'ou 0 du Not
en fait cela est fait afin de tester sur des entrees carte logique les ports qui ont changes et ausii de savoir dans quel sens ils ont changes ((1 ou 0)
racpp
Messages postés1909Date d'inscriptionvendredi 18 juin 2004StatutModérateurDernière intervention14 novembre 201417 10 déc. 2004 à 17:42
J'avais oublié de préciser que la variable qui contiendra le résultat de l'opérateur ~ doit être du même type que l'opérande, sinon le résultat ne sera pas correct. Je pense que tu veux travailler avec des octets, dans ce cas:
BYTE ancienne=0x7F;
BYTE result=0;
result =~ancienne;