方法一
方法一使用了联合体。联合(union)变量的所有成员共享同片存储区/内存。
1、声明联合
typedef union FLOAT_CONV
{
float f;
char c[4];
}FLOATCONV;
2、定义函数
float BLEndianFloat(float fValue)
{
FLOAT_CONV d1, d2;
d1.f = fValue;
d2.c[0] = d1.c[3];
d2.c[1] = d1.c[2];
d2.c[2] = d1.c[1];
d2.c[3] = d1.c[0];
return d2.f;
}
3、测试用例
int _tmain(int argc, _TCHAR* argv[])
{
float a, b;
a = 1234.5678f;
b = BLEndianFloat(a);
return 0;
}
4、运行效果
方法二
1、定义函数
float BLEndianFloat2(float fValue)
{
unsigned char s[4], t[4];
float fResult;
memcpy(s, &fValue, sizeof(float));
t[0] = s[3];
t[1] = s[2];
t[2] = s[1];
t[3] = s[0];
memcpy(&fResult, t, sizeof(float));
return fResult;
}
2、测试用例
int _tmain(int argc, _TCHAR* argv[])
{
float a, b;
a = 1234.5678f;
b = BLEndianFloat2(a);
return 0;
}
3、运行效果
同方法一。
测试工程下载:https://download.youkuaiyun.com/download/sunriver2000/10711565