begin process at 2012 05 30 00:42:21
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Débutant(e)

 > 

opérateur bit à bit


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

opérateur bit à bit

jeudi 14 février 2008 à 15:14:17 | opérateur bit à bit

dunith

bonjour

j'ai dans l'ancien code en c:
if ((numcmd!=22)&(strncmp(trm_recp,"N",1)==0) )
            {
                PLCWrite[ WW_INDX[DevGENERFPP.numCom] ] |= (1<<4); // ecriture 1
             }
            else
            {
                PLCWrite[ WW_INDX[DevGENERFPP.numCom] ] &=~(1<<4); // ecriture2
            }

pour
l'ecriture 1: c'est de forcer le bit 4 à 1
pour l'ecriture 2: c'est de forcer le bit 4 à 0

Quelq'un peut si c'est juste ce que j'ai ecrit ou non, à propos des deux écritures?

merci



vendredi 15 février 2008 à 01:01:28 | Re : opérateur bit à bit

sheorogath

Membre Club Administrateur CodeS-SourceS
rediriger chez les Ciste mais c a peu pres ca


(daedric@rancisis ~)./a.out
16
-17
(daedric@rancisis ~)

(daedric@rancisis ~)cat t.c
int main()
{
  printf("%i\n", 1<<4);
  printf("%i\n", ~(1<<4));
  return (0);
}
(daedric@rancisis ~)

n'oublie pas que ~ inverse TOUS les bit donc tu passe en negatif le bit de signe etant le 31eme



"n'est pas mort ce qui semble a jamais dormir et en d'etrange temps meme la mort peut mourrir"
vendredi 15 février 2008 à 08:39:03 | Re : opérateur bit à bit

dunith

bonjour

merci pour ta réponse sheorogath

mais je suis désolée je n'ai pas tout à fait compris?
merci

vendredi 15 février 2008 à 12:37:11 | Re : opérateur bit à bit

luhtor

Ca dépend comment tu comptes les bits. Si tu comptes à partir de 1, ton code est faux, si tu comptes à partir de 0, il est juste.

Enfin j'imagine que ceci est plus correct: (1<<3)
vendredi 15 février 2008 à 12:44:20 | Re : opérateur bit à bit

sheorogath

Membre Club Administrateur CodeS-SourceS
je suis partie du principe qu'on comptais a partir de 0 ^^

je pousserais une explication plus tard, ou demain ... la vais faire dodo (cf heure de postage ^^ pas dormis depuis)

"n'est pas mort ce qui semble a jamais dormir et en d'etrange temps meme la mort peut mourrir"
vendredi 15 février 2008 à 22:10:13 | Re : opérateur bit à bit

SAKingdom

Membre Club
"n'oublie pas que ~ inverse TOUS les bit donc tu passe en negatif le bit de signe etant le 31eme"

Le bit signé n'est pas le 32 ème ? (bit 31 si on compte à partir de 0)

Oui c'est vrai que si on applique cette opération directement sur un entier, on le changera de signe.
Cependant, dans son exemple, il utilise &=.
Donc, ici, rien ne changera de signe et le bit qu'il voudra mettre à 0 sera bien à 0 et seulement lui changera de valeur.

C++ (@++)

samedi 16 février 2008 à 00:13:48 | Re : opérateur bit à bit

sheorogath

Membre Club Administrateur CodeS-SourceS
j'ai bien dit le 31eme je compte toujours a partir de 0 ^^

sinon apres il a raison quant a ses operations j'ai juste un peu plus pousse ^^

"n'est pas mort ce qui semble a jamais dormir et en d'etrange temps meme la mort peut mourrir"
samedi 16 février 2008 à 02:14:35 | Re : opérateur bit à bit

SAKingdom

Membre Club
J'ignorais que l'on pouvais dire 0ème (zérotième) ;)

C++ (@++)

lundi 18 février 2008 à 11:46:21 | Re : opérateur bit à bit

sheorogath

Membre Club Administrateur CodeS-SourceS
c'est comme commencer l'indexage des tableaux a 0 ^^

"n'est pas mort ce qui semble a jamais dormir et en d'etrange temps meme la mort peut mourrir"


Cette discussion est classée dans : ecriture, bit, opérateur, ww, plcwrite


Répondre à ce message

Sujets en rapport avec ce message

Ecriture Fichier Binaire bit a bit [ par nobpn ] Bonjour, Je souhaiterai ecrire dans un fichier bianire bit a bit. Je m'explique : il s'agit de compression : je recupere un tablo de int = les bits Surdéfinition d'opérateur et constantes [ par neodelphi ] Bonjour tout le monde! J'ai écrit une classe CVector3 dans laquelle j'ai redéfini plusieurs opérateurs. Cela fonctionne correctement excepté lorsque opération sur les bits [ par alphaone ] J'aimerai savoir comment ouvrir un fichier bits à bit est l'enregistrer bit à bit.Comment avoir chaque bits d'un octect et convertir 8 bits en 1 octec fin du fichier [ par alphaone ] BOOL bool_entree(){    if(curs_bit_entree==-1)    { char ch;    fread(&ch,1,1,fichier);    ConvertOctetToBit(ch);    curs_bit_entree=7; } &nbsp Voir les bit d'un long [ par alphaone ] Comment voir chaqu'un des bit d'un long? appli 32 bit et DLL 16 bit [ par chamar ] Bonjour,je programme en C borland 5.01.je dois charger une DLL 16 bit dans mon prg 32 bit,la fonction loadlibrary ne fonctionne pas, quelqu'un a t'il Ecriture dans un textview [ par Ensias ] Lorsque j'ecris plusieurs fois consecutives dans un textview les changements ne se fonts que lorsque je clique sur le texte view. Comment faire pour q aide pour une dll [ par baby3378 ] bonjour a tous, voila j'ai trouvé ce code sur cpp, (que je trouve remarquable )mais quand je l'essai sur mon Dev C++ il me di : invalid convertion fro Ecriture fichier [ par SaXo360 ] Salut,j'ai déjà ecris plusieur posts sur d'autres problèmes de fichiers mais là c'est un pb d'écriture.J'avais ouvert ou créer s'il n'éxistait pas un commande PIC 68HC11E2 [ par salim_samir ] salut à touscomment je peut tester un bit de port c de pic 68HC11E2 et commander un clignotement de 4 lampe (si le bit x de port c est vrais fait un c


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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,593 sec (3)

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