Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1479 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Changement de type de variable

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Changement de type de variable

n°237583
peak
Posté le 30-10-2002 à 21:55:27  profilanswer
 

Je voudrai en fait changer (en C++) une varaible unsigned et un vecteur de 2 char (16bits->2*8bits) suis-je obligé de le faire en assembleur ou y a-t-il une meilleur technique?

mood
Publicité
Posté le 30-10-2002 à 21:55:27  profilanswer
 

n°237586
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 30-10-2002 à 22:13:11  profilanswer
 

tu peux etre plus précis ? que veux tu faire exactement ? un cast ?  :??:


---------------
J'ai un string dans l'array (Paris Hilton)
n°237587
Ace17
Posté le 30-10-2002 à 22:16:32  profilanswer
 

unsigned short a;
char vect[2];
 
vect[0] = a & 00FF;
vect[1] = (a & FF00) >> 8;

n°237593
peak
Posté le 30-10-2002 à 22:34:43  profilanswer
 

MERCI!  :)

n°237607
Ace17
Posté le 30-10-2002 à 22:51:25  profilanswer
 

Ace17 a écrit a écrit :

unsigned short a;
char vect[2];
 
vect[0] = a & 0x00FF;
vect[1] = (a & 0xFF00) >> 8;



n°237613
Taz@PPC
saloperie de i=`expr $i + 1`;
Posté le 30-10-2002 à 23:06:54  profilanswer
 

Ace17 a écrit a écrit :

unsigned short a;
char vect[2];
 
vect[0] = a & 00FF;
vect[1] = (a & FF00) >> 8;




 
pourquoi tu veux pas faire une union? ou un truc portable? qui te dit qu'un short est sur 16 bits et un char sur 8?


---------------
du bon usage de rand [C] / [C++]
n°237633
peak
Posté le 30-10-2002 à 23:51:52  profilanswer
 

et dans l'autre sens je suppose ke c'est :

Code :
  1. unsigned short a;
  2. char vect[2];
  3. a = (unsigned) vect[0];
  4. a<<8;
  5. a+= (unsigned) vect[1];


 
???

n°237690
Musaran
Cerveaulté
Posté le 31-10-2002 à 02:53:24  profilanswer
 

Code :
  1. unsigned short a;
  2. char vect[2];
  3. char* trans= (char*)&a;
  4. vect[0] = trans[0];
  5. vect[1] = trans[1];

Pour l'inverse, je te laisse chercher...
 
Mais Taz a raison...

Code :
  1. union mix{
  2. unsigned short a;
  3. char vect[2];
  4. };
  5. mix.a= ...;
  6. mix.vect[0]; //premier octet


C'est bizarre... J'ai vu ça il n'y pas longtemps ;) .


---------------
Bricocheap: Montage de ventilo sur paté de mastic silicone
n°237722
Ace17
Posté le 31-10-2002 à 09:09:00  profilanswer
 

Taz@PPC a écrit a écrit :

 
 
pourquoi tu veux pas faire une union? ou un truc portable? qui te dit qu'un short est sur 16 bits et un char sur 8?




 
unsigned short a;
char vect[2];
 
memcpy(vect, &a, sizeof(vect));


Message édité par Ace17 le 31-10-2002 à 09:09:14
n°238107
peak
Posté le 31-10-2002 à 18:11:40  profilanswer
 

dans cette exemple :

Code :
  1. #include<iostream.h>
  2. #include<fstream.h>
  3. template<class Type>
  4. void fOut(Type a)
  5. {
  6. unsigned x=sizeof(Type);
  7.            
  8. cout<<a<<endl;
  9. char* trans= (char*)&a;
  10. ofstream file("Test.txt" );
  11. file.write(trans, x);
  12. file.close();
  13. }
  14. template<class Type>
  15. void fIn()
  16. {
  17. unsigned x=sizeof(Type);
  18. char* trans=new char[x];
  19.  
  20. ifstream file("Test.txt" );
  21.    file.read(trans,x);
  22. file.close();
  23. for(unsigned j=0; j<x; j++)
  24.  cout<<trans[j];
  25. cout<<endl;
  26. Type a=(Type) *trans;
  27. cout<<a<<endl;
  28. delete[] trans;
  29. }
  30. void main()
  31. {
  32. unsigned a=127;
  33. fOut(a);
  34. fIn<unsigned>();
  35. a=128;
  36. fOut(a);
  37. fIn<unsigned>();
  38. }


 
pourkoi ça ne marche ke jusk'à a==127   :heink:


Message édité par peak le 31-10-2002 à 18:12:13
mood
Publicité
Posté le 31-10-2002 à 18:11:40  profilanswer
 

n°238251
Musaran
Cerveaulté
Posté le 01-11-2002 à 03:10:55  profilanswer
 

127 est le maximum d'un char s'il est signé.
 
Mais c'est bizarre, ça ne devrait pas affecter ton code...


---------------
Bricocheap: Montage de ventilo sur paté de mastic silicone
n°238332
peak
Posté le 01-11-2002 à 15:05:38  profilanswer
 

Je savais pô k'on pouvait signer ou pas un char?

n°238336
peak
Posté le 01-11-2002 à 15:40:53  profilanswer
 

ça marche deja mieux (en remplacant char par unsigned char) mais y'a comme même encore un prob dans la fonction "fIn()"; j'ai bien la solution voulu dans mon vecteur "trans" mais il n'y a jamais ke les bits de poids faible ki sont assigné à "a"???
 
p.ex: 134 -> 134
      255 -> 255
      256 -> 0
      257 -> 1
      65535 -> 255  
 
l'erreur se situe donc d'office dans "Type a=(Type) *trans;"  :fou:

n°238535
peak
Posté le 02-11-2002 à 14:03:24  profilanswer
 

:cry:  :cry:  :cry:  
 
Comment ke je fait moi???
 :cry:  personne me répond :cry:
Dites moi au moins ce ke vous en pensé, si vous avez une meillieur solution mais là je suis bloké!
 
En fait je voudrai juste arrivé à sauver et charger une variable sur un fichier
 
Est-ce ke "fstream.h" ne marche ke pour les fichier text??
Est-ce ke  "memcpy(vect, &a, sizeof(vect)); " est une meillieur solution??
 
 :??:  :??:  :??:  
 
 
 

n°239626
Musaran
Cerveaulté
Posté le 05-11-2002 à 00:01:56  profilanswer
 

Code :
  1. char* trans=...;
  2. Type a= (Type)*trans; //transforme un char en Type
  3. Type a= *(Type*)trans; //lit un Type là ou pointe trans

Le type du pointeur vaut plus que le type de la variable assignée.
 
Pendant que j'y suis:

Code :
  1. #include<iostream.h>
  2. #include<fstream.h>

Les headers ".h" sont obsolete en C++.

Code :
  1. #include<iostream>
  2. #include<fstream>
  3. using namespace std; //au plus simple


---------------
Bricocheap: Montage de ventilo sur paté de mastic silicone

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Changement de type de variable

 

Sujets relatifs
en c , lorsque je met byte variable ca va pasCompter nombre de mot d'une variable
[filemaker] lister par typeQui peut me dire comment intégrer cette variable ds le code ?
[vbscript] type mismatch ...nom de fichier variable? ofstream fich(var,ios::out),synthax macro?who
Best practice Java : déclaration d'1 variable (locale) dans une boucleEnvoie d'une variable avec SendData --- Besoin d'aide :(
Div et variable, placer un div en fonction d'une variable ??probleme de changement de type pour une variable [newbies du Python]
Plus de sujets relatifs à : Changement de type de variable


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR