Bonjour,
j'ai des nombres en long int ( sur 4 octets ) que je souhaite ajouter dans une trame de char.
pour ce faire, j'utilise le procédé suivant :
jusque là tout va bien
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 char RX_Value[30]; long int valeur=123456; RX_Value[0] = valeur & 0xFF; RX_Value[1] = (valeur>>8) & 0xFF; RX_Value[2] = (valeur>>16) & 0xFF; RX_Value[3] = (valeur>>24) & 0xFF;
Maintenant j'aimerai fais la meme chose pour un nombre codé en float ( 4 octets ).
j'ai essaye le code suivant :
afin d'avoir dans tmp les 4 octets qui me permettraient de stocker ensuite dans le tableau de char :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 long int *tmp; float valeur_float; valeur_float = 123456.2; tmp=&valeur_float;
Mais le compilater ( visual studio ) refuse de compiler en mettant le message d'erreur suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 RX_Value[0] = *tmp & 0xFF; RX_Value[1] = (*tmp>>8) & 0xFF; RX_Value[2] = (*tmp>>16) & 0xFF; RX_Value[3] = (*tmp>>24) & 0xFF;
c:\projet\ttcpip.cpp(367) : error C2440: '=' : cannot convert from 'float *' to 'long *'
Quelqu'un sait-il comment réussir à copier ce float sur un char de 4 octet ( sans qu'il n'y ait de conversion ) ?
Merci d'avance
Partager