PDA

View Full Version : [C++] passare da un dato "float" ad un array unsigned char...come si fa?


DomusP45
04-04-2012, 20:02
Salve a tutti.

Vi interpello per chiedervi questa cosa: come posso fare per passare da un float immesso da utente (es.10.0) ad un array "unsigned char" da 4 byte?

es. FLOAT = 10.0 UNSIGNED CHAR= {0x00,0x00,0x20,0x41}

come posso ottenere questa cosa? Mi serve che sia unsigned char perchè devo poi inviarlo su un porta com...e deve mantenere i 4 byte in quel modo...insomma, deve convertire da float ad unsigned char di 4 byte...

Aiutatemi!

WarDuck
04-04-2012, 20:17
Sembra la stessa cosa che avevi scritto nell'altro thread, solo che al contrario...

Comunque se vuoi leggere i bytes:



float x = 10.0;

char* b = (char*) &x;

printf("%x %x %x %x\n", b[0], b[1], b[2], b[3]);



Tieni presente il problema dell'endianess (http://en.wikipedia.org/wiki/Endianness).

DomusP45
04-04-2012, 20:21
Sembra la stessa cosa che avevi scritto nell'altro thread, solo che al contrario...

Comunque se vuoi leggere i bytes:



float x = 10.0;

char* b = (char*) &x;

printf("%x %x %x %x\n", b[0], b[1], b[2], b[3]);



Tieni presente il problema dell'endianess (http://en.wikipedia.org/wiki/Endianness).

sei sempre gentilissimo...allora, grazie anche di questa risposta...ho aperto un altro thread per non accodare sempre nello stesso....

Domani mattina provo e ti faccio sapere...grazie mille per il momento..