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!

 채택된 답변

Iain
Iain 2013년 5월 21일
편집: Iain 2013년 5월 21일

2 개 추천

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

추가 답변 (1개)

Marc
Marc 2013년 5월 21일

0 개 추천

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

댓글 수: 1

James Tursa
James Tursa 2013년 5월 21일
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.

댓글을 달려면 로그인하십시오.

카테고리

도움말 센터File Exchange에서 Numeric Types에 대해 자세히 알아보기

질문:

2013년 5월 21일

Community Treasure Hunt

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

Start Hunting!

Translated by