是否可以转换float
是从大端到小端吗?我有来自 PowerPC 平台的大端值,我通过 TCP 将其发送到 Windows 进程(小端值)。这个值是一个float
,但是当我memcpy
将值转换为 Win32 float 类型,然后调用_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;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)