Conversion Float vers char[4]
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 :
Code:
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; |
jusque là tout va bien
Maintenant j'aimerai fais la meme chose pour un nombre codé en float ( 4 octets ).
j'ai essaye le code suivant :
Code:
1 2 3 4 5
|
long int *tmp;
float valeur_float;
valeur_float = 123456.2;
tmp=&valeur_float; |
afin d'avoir dans tmp les 4 octets qui me permettraient de stocker ensuite dans le tableau de char :
Code:
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; |
Mais le compilater ( visual studio ) refuse de compiler en mettant le message d'erreur suivant :
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