begin process at 2012 02 11 11:23:57
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

aidez moi SVP


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

aidez moi SVP

mardi 7 juin 2005 à 08:06:49 | aidez moi SVP

mayouma

Quelqu'un pourrai m'aider à comprendrece bout de code en C++:
*Cle = (((*d ^ ri()) & ((1<<Taille) - 1)) | (1<<Taille))
avec d de type unsigned short*
ri() est une methode qui retourne unsigned long
Taille est de type unsigned long et Cle de type unsigned short*
j'ai pas compris la fonctionalité du: '<< ', '&' et du  '| ' dans cette instruction .
Merci bien
mardi 7 juin 2005 à 08:25:46 | Re : aidez moi SVP

Stubbornman

Pour ce qui est des & et |, ce sont des operatuers binaire: & pour ET et | pour OU. Quant a <<, c'est un decalage binaire vers la gauche de Taille bits. Quant a l'utilite de cette operation, faut voir dans l'ensemble du code...
mardi 7 juin 2005 à 08:27:39 | Re : aidez moi SVP

Stubbornman

desole, j'vois qu'il manque la moitie de ce que j'ai ecris, je recommence donc: & -> ET binaire | -> OU binaire << -> decalage binaire a gauche de Taille bits. Pour comprendre a quoi ca sert, faut voir avec le reste du code....
mardi 7 juin 2005 à 08:39:25 | Re : aidez moi SVP
mardi 7 juin 2005 à 09:39:18 | Re : aidez moi SVP

ymca2003

Tout d'abord il faut savoir que les entiers sont représentés en interne en binaire (0 ou 1 pour chaque bit).
par exemple 124 en décimal ça donne 0111 1100 en binaire.
124 = 0*2^0 + 0*2^1 + 1*2^2 + 1*2^3 + 1*2^4 + 1*2^5 + 1*2^6 + 0*2^7


- & : il s'agit d'un ET logique bit à bit entre 2 valeurs. On prend chaque bits des opérandes et on applique
  la table suivante :
0 & 0 = 0
1 & 0 = 0
0 & 1 = 0
1 & 1 = 1

exemple :
124&57 = 01111100 & 00111001 = 00111000

- | : il s'agit d'un OU logique bit à bit entre 2 valeurs. On prend chaque bits des opérandes et on applique
  la table suivante
0 & 0 = 0
1 & 0 = 1
0 & 1 = 1
1 & 1 = 1

exemple :
124|57 = 01111100 | 00111001 = 01111101

il existe également des XOR (^) et un NOT (~)
Ces opérateur servent surtout à faire des masques pour des champs de bits.Par exmemple lorsque l'on veut
stocker 8 valeurs correspondant à des états VRAI ou FAUX, au lieu d'utiliser 8 variables différentes on
utilise une seule et des champs de bits. par exemple le bit 0 pour l'état 0 etc. Pour Affecter une valeur
on utilisera le OU et pour la tester le ET.

- << : il s'agit d'un décalage à gauche des bits :

exemple :
124<<2 = 01111100<<2 = 0111110000

- >> : il s'agit d'un décalage à droite des bits :

exemple :
124>>2 = 01111100>>2 = 011111

Ces opérateur servent à extraire des bits d'un champ de bit mais également à réaliser des multiplications
er de divisions par des puissances de 2 trè rapidement (comme en décimal on on rajoute des 0 ou vire
des chiffres pour multiplier ou diviser par 10 facilement)


Pour ton exemple, il s'agit sans doute de calculer un checksum ou de réaliser du cryptage. Les opérations binaires utilisées
sont dont liées à des formules mathématiques assez complexes ayant des propriétés particulières et dont l'interprétation
en C donne des expressions assez tortueuses.



Cette discussion est classée dans : type, cle, unsigned, ri, 1taille


Répondre à ce message

Sujets en rapport avec ce message

RegSetValueEX > REG_DWORD [ par Roudy ] salut j'aimerais ecrire le chiffre 10 dans mon REG_DWORD mais il me le converti toujours en A et je ne my connait pas vraiement dans les types variabl Allocation de variable [ par CrazySeb ] Bonsoir a tous, j'ai un probleme assez bete qui m'empeche d'avancer dans mon travail... Je vous explique le probleme. J'ai deux sous fonctions qui conversion en unsigned long [ par flatou ] voila j'ai un type de donnée défini comme suit :typedef unsigned long long my_ulonglong;#endifc'est un type de donnée MySQL. Or j'ai vu que pour utili Traduction du C++ vers VB [ par zgezou ] Bonjour,          je suis nouveau en programmation et j'aimerais savoir comment traduire du C++ en VB. En fait j'ai besoin d'utiliser des fonctions se type unsigned long long avec borland c++ [ par douss4 ] Bonjour,Je fait actuellement un programme de cryptage qui utilise une clé de 64 bits, ce qui correspond à la taille (d'après mes recherches) d'un unsi Conversion de type [ par rfad ] Bonjour, Je développe une DLL en Visual C++ "Visual Studio 8" avec des fonctions qui font du cryptage. Une des fonctions doit prendre un unsigned long Utilisation du type unsigned char [ par zaraki21 ] Bonjour, Je développe actuellement une application en C/C++ pour un périphérique "embarqué" et je dois utiliser le type unsigned char. Je sais que ce Recuperer une config [ par vindian ] Bonjour, Je doit réaliser une petite interface sur windows VISTA avec Qt creator qui consiste à : - récupérer le type de connexion ( Ethernet ou wifi) construction d'un Dll [ par moooonaaaa ] Salut, Je veux construire un Dll en utilisant Microsoft Visual Studio 2005. Le probléme est lorsque j'ai voulu faire un projet .Dll, J'ai trouvé que l gestion de parking [ par onh890 ] voici le cahier de charges d'un projet en langage C sur la gestion d'un parking : -------------------------------------------------------------------


Nos sponsors


Sondage...

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

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