Francks11
Messages postés71Date d'inscriptionmardi 20 décembre 2005StatutMembreDernière intervention13 décembre 2008
-
29 mars 2007 à 19:13
Francks11
Messages postés71Date d'inscriptionmardi 20 décembre 2005StatutMembreDernière intervention13 décembre 2008
-
31 mars 2007 à 08:31
bonjour,
voila je fais une application qui envoi un caractere (char) à un processus et je dois savoir de quel processus il vient pour faire le bon traitement...
donc si c le processus 1, je voudrais mettre le bit 7 à 1 du char
et sinon je le laisse à 0...
et je voudrais aussi savoir comment on voit si le bit 7 apres le passage dans le tube est à 1, et si oui, comment enlever le 1 devant...
clempar55
Messages postés59Date d'inscriptionsamedi 1 janvier 2005StatutMembreDernière intervention 4 avril 2007 29 mars 2007 à 21:23
Il faut jouer avec les opérateur bit à bit | et & (dans cet exemple j'ai supposé que le "bit 7" était le 7eme en partant de la gauche):
char c; // char a modifier
// modifier le bit:
c = c | 2; // pour mettre le bit 7 à 1 (2== 00000010 en binaire )
c = c & 253; // pour mettre le bit 7 à 0 (253== 11111101 en binaire )
//lire le bit :
bool bit = c & 2; // bit==true si le bit 7 est à 1, false sinon
Voila cela doit être bon ( mais fait sans test alors à vérifier).
racpp
Messages postés1909Date d'inscriptionvendredi 18 juin 2004StatutModérateurDernière intervention14 novembre 201417 30 mars 2007 à 13:26
Salut,
Normalement, les bits sont représentés de gauche à droite par leurs puissances de 2:
76543210
10101010
Ainsi le bit 7 est le premier à gauche. Il a donc le poids le plus fort dans un octet.
Pour mettre ce bit à 1 il suffit d'appliquer un OR à l'octet avec la
valeur 0x80. Pour le mettre à 0 on lui applique un AND avec l'inverse
bit à bit de la valeur 0x80. Pour savoir si ce bit 7 est à 1 on teste
l'octet avec la valeur 0x80. Exemple:
Francks11
Messages postés71Date d'inscriptionmardi 20 décembre 2005StatutMembreDernière intervention13 décembre 2008 31 mars 2007 à 08:31
ben en faite toute marche bien sur des caracteres sans accent et chiffres mais dès que y a un accent ca va plus car le bit 7, donc le 8 est à 1 dès qu'on met un accent, donc impossible de savoir...