Float to binary string and vice-versa

Hello,
I would like to have following 2 functions written in Matlab (here the C-code):
void getMemoryFromFloat(float floatNumber,char memory[4])
{ // floatNumber is input, memory is output
memory[0]=((char*)&floatNumber)[0];
memory[1]=((char*)&floatNumber)[1];
memory[2]=((char*)&floatNumber)[2];
memory[3]=((char*)&floatNumber)[3];
}
float getFloatFromMemory(char memory[4])
{ // memory is input
return(((float*)memory)[0]);
}
Anyone can give me a hint? To give a quick background, I basically communicate with a C-library that sends me float data that is coded in a string. In a similar way, that library only accepts float data coded in a string.
Thanks!

 Akzeptierte Antwort

Iain
Iain am 21 Mai 2013
Bearbeitet: Iain am 21 Mai 2013

2 Stimmen

typecast will convert a 32bit float to a single 32bit integer, or into 4 8 bit integers, or 4 characters. (And vice versa).
32 bit float = single format

Weitere Antworten (1)

Marc
Marc am 21 Mai 2013

0 Stimmen

Thanks a lot! typecast was the command I was looking for :)

1 Kommentar

James Tursa
James Tursa am 21 Mai 2013
If you are working with very large variables and/or doing this many times in a loop, you might consider this FEX submission "typecastx" that returns a shared data copy of the input. It is faster and more efficient than the built-in typecast function which returns a deep data copy.

Melden Sie sich an, um zu kommentieren.

Kategorien

Gefragt:

am 21 Mai 2013

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by