是否可以将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/

10-12 14:18