C/Visual C - Dividir un float en 4 chars

 
Vista:

Dividir un float en 4 chars

Publicado por Jose (1 intervención) el 22/01/2001 00:00:00
En Turbo C,

Para comunicación serie necessito pasar variables tipo float a tipo char, y luego volver a reconstruir los floats originales.

No me permite char[0]=float>>8;

Cómo lo hago?

Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Dividir un float en 4 chars

Publicado por Pedro Pablo (37 intervenciones) el 23/01/2001 00:00:00
No sé si esto funcionará, pero yo creo que debería (lo siento, ahora mismo no puedo probarlo).

float f;
char *c;

c = (char*) &f;

Y luego lo tienes en c[0], c[1], c[2] y c[3]. Ten cuidado y no cambies sus valores! Simplemente leelos.

Suerte!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Dividir un float en 4 chars

Publicado por CaFcO (40 intervenciones) el 28/01/2001 04:44:05
Hola, la manera mas sencilla en el que se puede convertir un valor flotante a una cadena es de la siguiente manera, te anexo el codigo fuente para que lo verifiques

#include <conio.h>
#include <stdlib.h>
#include <stdio.h>

main()
{
char cad[25];
double num;
int sig = 5; /* digitos significativos */

/*numero regular */
num = 9.876;
gcvt(num, sig, cad);
printf("numero en cadena = %s\n", cad);

/* numero negativo */
num = -123.4567;
gcvt(num, sig, cad);
printf("numero en cadena = %s\n", cad);

/* notacion cientifica */
num = 0.678e5;
gcvt(num, sig, cad);
printf("numero en cadena = %s\n", cad);
getch();
return(0);
}

bueno, espero que lo puedas provar y una vez que tengas del otro lado la cadena, en tonces lo unico que tienes que hacer ahora es convertir esta cadena a valor flotante, esto se puede realizar por medio de la funcion atof, ok

ejemplo:

float num;
char cad[5]="34.45";

num=atof(cad);

esta funcion atof se encuentra en el archivo stdlib.h

bueno, espero que tengas suerte

bye
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Dividir un float en 4 chars

Publicado por Endos (143 intervenciones) el 01/02/2001 20:10:23
Solo necesitas una union similar a esta:

union Transformar
{
float A;
char B[4];
}Transforma;

Escribes en A y lees los 4 bytes de B y a la inversa en la otra maquina.

Saludos,
Endos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar