热门关键字:  ubuntu  分区  Fedora  linux系统进程  函数

当前位置 :| 主页>Linux教程>编程开发>

嵌入式平台上一个浮点处理的问题

来源: 作者: 时间:2007-03-06 Tag: 点击:

1 引言

本文作者在为Sitsang评估板编写一个从二进制文件中读取浮点数的程序时,发现一个奇怪的问题:在x86上编译后能够正确运行的程序,交叉编译后拿到评估板上跑就不对了。比如,本来文件中保存的二进制数据的值应该是6244.760200f,在PC上读出来的值也是对的,但是在评估板上运行时读出来的值就是0.00000f。我首先当然怀疑是字节序的问题,于是写了一个小程序测试了一下PC机和Sitsang评估板的整数的字节序,发现两者的字节序都是小端字节序。我一再地仔细检查了程序逻辑,发现程序在逻辑上应该是没有问题的,于是问题的焦点就落到了Sitsang评估板如何表示浮点数据上。同样地,我写了一个小测试程序,用来测试这一疑点。测试的结果有点出乎意料,一个占据8字节的双精度浮点数,在x86平台上和在Sitsang评估板上的表示是不同的。不同之处在于:在Sitsang评估板上,双精度浮点数的前4个字节和后4个字节恰好与在x86平台上的前4个字节和后4个字节是相反的。而这一点直接导致了问题的发生——因为采用的二进制数据文件是在x86平台上制作完成的。

2 测试程序

测试程序非常简单,如下所示:

#include <stdio.h>

#include <stdlib.h>

int

main(void)




相关文章:
ioctl函数
struts与spring三种整合方法
进程的创建fork
jsp速成
Hibernate单向一对多应注意的问题
Java RMI之HelloWorld篇
常用的Eclipse快捷键
sparc linux 系统调用
一个关于jboss "Halting VM"的情况处理
编写更好的Linux程序3(这次只讲void *)
Tikiwiki 2.2+ Ucenter 1.5(Discuz)整合
玩转ptrace(一)
玩转ptrace(二)
dup2
pipe
Jboss的学习
gcc用法
将UI从代码中解放出来
数据结构与算法(2)
有关于JAVA中的CLASSPATH的作用
const成员函数
虚函数
《c和指针》读书笔记2
初次接触Zend Framework需要掌握的内容
php中require和include的简单区别
正则表达式在PHP中的应用
在PHP中使用与Perl兼容的正则表达式
Zend Studio 生成 wsdl
freebsd7 + php5.2.6 + xdebug2.0.2安装
PHP抓取远程网站数据的代码