Chinaunix首页 | 论坛 | 博客
  • 博客访问: 403434
  • 博文数量: 42
  • 博客积分: 1030
  • 博客等级: 准尉
  • 技术积分: 816
  • 用 户 组: 普通用户
  • 注册时间: 2012-02-06 17:16
文章分类

全部博文(42)

文章存档

2013年(1)

2012年(41)

分类: C/C++

2012-02-15 12:13:22

由于Float类型的数据在计算中保存方法不一样,所以对Float类型的数据做大小端转换的情况不能简单的通过宏移位来完成,需要使用函数来完成操作,一下是将小端存储的Float数据转换为大端的转换函数:

  1. typedef union{
  2.     float f;
  3.     char c[4];
  4. }FLOAT_CONV;


  5. /************************************************************
  6.     Conversion little endian float data to big endian
  7. *************************************************************/
  8. static float __ltobf(float data)
  9. {
  10.     FLOAT_CONV d1, d2;

  11.     d1.f = data;

  12.     d2.c[0] = d1.c[3];
  13.     d2.c[1] = d1.c[2];
  14.     d2.c[2] = d1.c[1];
  15.     d2.c[3] = d1.c[0];

  16.     return d2.f;
  17. }
阅读(10182) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~