我需要让fortran与c两种代码异步共享一些数据,于是让fortran用二进制流(stream)写入一些real类型并输出到屏幕上。在用C代码fread的时候(rb),得到的float和fortran中的输出在屏幕上的不一样。
后来我又实验了,用fortran写入某real并打印在屏幕,然后直接调用C,将该real传入。在C中将其也写入另一个二进制文件。最后用HEX格式发现两个文件的数据竟然不一样。
查了一下资料,两个不是都是IEEE存储浮点数据吗?为什么会这样?
我需要让fortran与c两种代码异步共享一些数据,于是让fortran用二进制流(stream)写入一些real类型并输出到屏幕上。在用C代码fread的时候(rb),得到的float和fortran中的输出在屏幕上的不一样。
后来我又实验了,用fortran写入某real并打印在屏幕,然后直接调用C,将该real传入。在C中将其也写入另一个二进制文件。最后用HEX格式发现两个文件的数据竟然不一样。
查了一下资料,两个不是都是IEEE存储浮点数据吗?为什么会这样?
1 回答3.3k 阅读
1.1k 阅读
151 阅读
C代码
Fortran代码
运行结果

结果没问题啊