是否可以将float
从大端转换为小端?我通过TCP将其发送到Windows进程的PowerPC平台上具有很大的字节序值(小字节序)。这个值是float
,但是当我将memcpy
值转换为Win32浮点类型,然后对该值调用_byteswap_ulong
时,我总是得到0.0000吗?
我究竟做错了什么?
最佳答案
只需反转四个字节的作品
float ReverseFloat( const float inFloat )
{
float retVal;
char *floatToConvert = ( char* ) & inFloat;
char *returnFloat = ( char* ) & retVal;
// swap the bytes into a temporary buffer
returnFloat[0] = floatToConvert[3];
returnFloat[1] = floatToConvert[2];
returnFloat[2] = floatToConvert[1];
returnFloat[3] = floatToConvert[0];
return retVal;
}
关于c++ - 将浮点值从大端转换为小端,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2782725/