bitwise operation sur un "double"

Développement, conception de sites web, PHP, (X)HTML, ASP, Ajax, CSS, Javascript, Flash, MySQL, et autres ont leurs entrées dans cette section. On peut aussi parler d'hébergement, de maintenance, de sécurité...

Modérateur: Modérateurs

bitwise operation sur un "double"

Messagepar Jimmy » 09 Oct 2007 11:40

Salut,

J'ai une question pour la communaute C/C++. Je dois manipuler les bits d'une variable du type double. Cette manipulation consiste specialement a concatener quelques bits d'une variable A avec quelques autres bits d'une variables B pour constituer une troisieme variable resultat de la concatenation qui elle aussi doit etre du type double.
Le probleme est que je ne peux pas faire des "shift droite ou gauche" si le type de la variable n'est pas "int". Si je "cast" mon double en int je risque de perdre des informations !!!
Quelle est la meilleure maniere de faire ce genre de manipulation selon vous ?

Merci beaucoup, et desole pour les caracteres non accentues, mon clavier n'est pas tres amical avec les accents ...
J.
Avatar de l’utilisateur
Jimmy
Libellulien Junior
Libellulien Junior
 
Messages: 339
Inscription: 17 Mar 2004 23:03
Localisation: planète Terre

Messagepar diavolezza » 09 Oct 2007 13:27

hello
quelque chose du genre:
double x; int i[2];
px=&x; i[0]=px[0] ; i[1]=px[1] ;
j'ai alors 2 int que je peux manipuler
Avatar de l’utilisateur
diavolezza
Super Libellulien
Super Libellulien
 
Messages: 1449
Inscription: 15 Sep 2005 13:49
Localisation: virtuelle

Messagepar Jimmy » 09 Oct 2007 16:58

Merci diavolezza pour la proposition. Je vais essayer d'explorer un peu ta solution.

J.
Avatar de l’utilisateur
Jimmy
Libellulien Junior
Libellulien Junior
 
Messages: 339
Inscription: 17 Mar 2004 23:03
Localisation: planète Terre

Messagepar diavolezza » 10 Oct 2007 14:12

hello
ou peut-être
double x; int i[2];
px=&x; i[0]=(int *) px[0] ; i[1]= (int *)px[1] ;
Avatar de l’utilisateur
diavolezza
Super Libellulien
Super Libellulien
 
Messages: 1449
Inscription: 15 Sep 2005 13:49
Localisation: virtuelle

Messagepar Jimmy » 10 Oct 2007 15:47

Salut,

Apres revision du projet que je realise, j'ai trouve que je peux caster en UINT64 sans trop de danger car ce n'est que la serie de bits qui m'interesse et non pas la valeur affichee en double. Donc pas besoin que je me casse la tete avec le codage de la mantisse etc ... Du coup ca me facilite pas mal les choses pour extraire et/ou modifier en binaire.

Sinon ta methode n'est pas mal non plus, ca fonctionne avec quelques precautions.

Je pense que si je trouve du temps quand je termine mon projet, je vais ecrire un petit tutoriel pour detailler toutes les methodes de manipulation possible pour jouer en binaire :). J'espere que ca serait utile pour la communaute libellules/C/C++.

Merci,
J.
Avatar de l’utilisateur
Jimmy
Libellulien Junior
Libellulien Junior
 
Messages: 339
Inscription: 17 Mar 2004 23:03
Localisation: planète Terre


Retourner vers Développement, conception de sites web

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités