begin process at 2012 02 12 14:41:06
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Général

 > 

Testé la valeur du 7ème bit


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Testé la valeur du 7ème bit

jeudi 29 mars 2007 à 19:13:35 | Testé la valeur du 7ème bit

Francks11

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...

je vous remercie  
jeudi 29 mars 2007 à 21:23:04 | Re : Testé la valeur du 7ème bit

clempar55

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).
jeudi 29 mars 2007 à 21:59:43 | Re : Testé la valeur du 7ème bit

SAKingdom

Membre Club
Quand on parle du 7ème bit, c'est toujours à partir de la droite donc:

c |= 64;
Pour mettre le 7ème bit à 1
c ^= 64
Pour mettre le 7ème bit à 0

if(c&64)
pour tester si 7ème bit == 1
if(!(c&64))
Pour tester si 7ème bit == 0

C++ (@++)

jeudi 29 mars 2007 à 22:07:33 | Re : Testé la valeur du 7ème bit

SAKingdom

Membre Club
Oups pardon, petite erreur.

C'est pas
c ^= 64
mais
c &= 191;
Pour mettre le 7ème bit à 0.

C++ (@++)

vendredi 30 mars 2007 à 11:32:30 | Re : Testé la valeur du 7ème bit

clempar55

Désolé autant pour moi (j'avais une chance sur deux alors j'ai pris dans le sens de la lecture ^^)
vendredi 30 mars 2007 à 13:26:36 | Re : Testé la valeur du 7ème bit

racpp

Administrateur CodeS-SourceS

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:

    char a,b;
    a=49;
    // Mettre le bit 7 à 1:
    a=a | 0x80;
    //Mettre le bit 7 à 0:
    a= a & ~0x80;
    // Récupérer l'état du bit 7:
    b= a & 0x80;

vendredi 30 mars 2007 à 21:05:15 | Re : Testé la valeur du 7ème bit

SAKingdom

Membre Club
Le bit 7 est à l'extrême gauche oui mais là on parle du 7ème bit donc du bit 6.
Menfin, si ce n'est pas le cas, il s'est mal exprimé.

C++ (@++)

vendredi 30 mars 2007 à 21:06:33 | Re : Testé la valeur du 7ème bit

SAKingdom

Membre Club
A non! En fait c'est moi qui ai mal lu. Il s'agit bien du bit 7 et non du 7ème.
Désolé.

C++ (@++)

samedi 31 mars 2007 à 08:31:50 | Re : Testé la valeur du 7ème bit

Francks11

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...


Cette discussion est classée dans : valeur, processus, bit, testé, 7ème


Répondre à ce message

Sujets en rapport avec ce message

Envoyer un signal à un processus [ par Zorgg ] Bonjour, J'aurais besoin d'envoyer juste un bit de temps a autre entre deux processus sous windows. Je pensais utiliser les signaux (signal.h) Mais je & logique en C [ par mezzoben ] bonjour tout le monde , je débute en C et en linux , voila mon bout de code en C qui utilise l'operation & bit à bit mais le probléme qu'il ne marche Etat des bit d'un nombre en c++ [ par Debord10 ] Slt! je veux afficher l'état de bit d'un nombre qulconque saisi au clavier,le rang du bit saisi aussi au clavier. SVP veuillez m'aider. voila le code Structure tableau memoire partage [ par chiro2000 ] Bonjour, Je suis face a un dileme je m entraine sur les memoires partages; j essaye de partage des donnes entre plusieurs processus Voici ma structu send et recv [ par StayCrunchy ] Bonsoir, J'ai un petit soucis avec les fonctions send et recv. j'ai fait un petit programme qui permet d'envoyer un fichier d'un serveur à un client. problème d'initialisation PIC16f1824 ADC [ par bluesun6918 ] Bonjour à toutes et à tous, je suis nouveau sur ce site et plus globalement dans le monde de la programmation. Etudiant dans une école d'électronique Utilisation de fichier .CSV en C++ [ par fredrizk ] Bonjour Dans le cadre de mon travail un client m'a demandé de créer un programme en C++. je suis supposé : -saisir une valeur, - ordonnancement [ par futur1ing1info ] Salut, j'ai un probleme d'ordonnancement qui utilise la politique tourniquet avec un quantum de temps qui peut etre superieur au temps d'execution de programation [ par techwood ] bonjour voila j'ai un souci: je doi utilisé hyperterminal et une liason rs232 et un convertisseur CNA et un afficheur. je doit taper au clavier un Relancer un processus quant celui ci et down [ par xana05 ] Bonjour, Voila j'ai un petit soucie avec un programme (de vidéosurveillance ) il arrive que le programme se ferme tout seul quant il commence l'encoda


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,749 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales