Probleme de conversion

Probleme de conversion - C - Programmation

Marsh Posté le 19-11-2003 à 11:57:45    

Bonjour,
 
Je cherche à convertir un entier (long) en une chaine de caractere et inversement. Mais impossible de me rappeller le nom de la fonction. qqun pourrait-il m'aider?
 
merci
 
ALOHA

Reply

Marsh Posté le 19-11-2003 à 11:57:45   

Reply

Marsh Posté le 19-11-2003 à 11:59:41    

s(n)printf et sscanf

Reply

Marsh Posté le 19-11-2003 à 12:32:11    

merci beaucoup pour cette reponse tres rapide.
Je vais peut etre abuse un peu, mais je cherche aussi un fonction qui puisse faire un decalage de bits.
Par exemple 0xF0 -> 0x0F
 
merci

Reply

Marsh Posté le 19-11-2003 à 12:33:51    

muadiib a écrit :

merci beaucoup pour cette reponse tres rapide.
Je vais peut etre abuse un peu, mais je cherche aussi un fonction qui puisse faire un decalage de bits.
Par exemple 0xF0 -> 0x0F
 
merci


 
avec les operateurs de decalage << (decalage à gauche) et >> (le meme a droite  :whistle: )

Reply

Marsh Posté le 19-11-2003 à 12:34:20    

0xF0 >> 4

Reply

Marsh Posté le 19-11-2003 à 15:20:36    

encore une fois merci...
Derniere question (cette fois ci c'est la bonne). J'ai une chaine de caractere de n caractere. Je veux pouvoir la lire par groupe de 2 caractere. Comment puis je faire?
 
merci

Reply

Marsh Posté le 19-11-2003 à 16:06:27    

ben tu lis 2 caracteres par 2 caracteres

Reply

Marsh Posté le 19-11-2003 à 16:07:42    

muadiib a écrit :

encore une fois merci...
Derniere question (cette fois ci c'est la bonne). J'ai une chaine de caractere de n caractere. Je veux pouvoir la lire par groupe de 2 caractere. Comment puis je faire?
 
merci


 

Taz a écrit :

ben tu lis 2 caracteres par 2 caracteres


 
[:meganne]

Reply

Marsh Posté le 19-11-2003 à 16:11:38    

Mais comment je fait ca. En fait les donnees sont en char mais c'est la valeur hexa qui m'interesse. Et je veut pouvoir lire les donnees par paquet de 16 bits en une fois.

Reply

Marsh Posté le 19-11-2003 à 16:13:47    

Une boucle du début à la fin de la chaîne avec un pas de 2.
Du moins un truc qui ressemble à ça

Reply

Marsh Posté le 19-11-2003 à 16:13:47   

Reply

Marsh Posté le 19-11-2003 à 16:19:16    

Justement, comment tu fait le pas de 2?
Parceque pour le moment je un truc du genre
tab[i] mais cela ne me sort que un octet (logique)... et j'en veut 2.

Reply

Marsh Posté le 19-11-2003 à 16:28:46    

bah tu copies tes 2 caractères dans une chaine temporaire de taille 2, puis sscanf tout ça...

Reply

Marsh Posté le 19-11-2003 à 16:38:02    

C'est justement ce que je veux eviter : faire 2 copies pour lire une valeur.

Reply

Marsh Posté le 19-11-2003 à 16:39:23    

sinon un truc crade, tu fais un pointeur vers un objet de 2*sizeof(char), et tu fais pointer au bon endroit sur la chaîne

Reply

Marsh Posté le 19-11-2003 à 16:43:03    

unsigned short 2car;
 
for(i=0;i<n;i+=2){
  2car = tab[i]<<8 | tab[i+1];
}

Reply

Marsh Posté le 19-11-2003 à 16:43:16    

Je m'exprime en fait assez mal, donc je vais recommencer.
J'ai une chaine de 4 caracteres : "1234" et je ne veux par recuperer "1234" mais 0x31323334 c'est a dire la valeur hexa de "1234".  
Et pour finir je veux copier en une fois deux caracteres soit 2 octets.
 
merci de m'aider

Reply

Marsh Posté le 19-11-2003 à 17:30:33    

muadiib a écrit :

C'est justement ce que je veux eviter : faire 2 copies pour lire une valeur.

tu crois pas que t'en fais un peu trop ? y a 2 tu connaissais pas sscanf ...
 
tu peux faire "%c%c", s[i], s[i+1]) de toutes façons ....

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed