爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 4591|回复: 7

[求助] fortran 有/无符号整数的问题

[复制链接]

新浪微博达人勋

发表于 2013-1-10 17:57:25 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
请教各位大侠,fortran中的单字节整数是不是有符号整数类型,如何能转换成无符号整数呢?

评分

参与人数 1金钱 +10 贡献 +5 收起 理由
godenflame135 + 10 + 5 问题提得好!提出了FORTRAN与C语言的优劣之.

查看全部评分

密码修改失败请联系微信:mofangbao

新浪微博达人勋

0
早起挑战累计收入
发表于 2013-1-10 18:35:42 | 显示全部楼层
还在折腾雷达数据?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 成长值: 0
发表于 2013-1-10 20:36:25 | 显示全部楼层
不明白楼主说的,可否给出一例?何为有符号无符号整型数?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-1-11 12:38:44 | 显示全部楼层
计算机里的数是用二进制表示的,最左边的这一位一般用来表示这个数是正数还是负数,这样的话这个数就是有符号整数。如果最左边这一位不用来表示正负,而是和后面的连在一起表示整数,那么就不能区分这个数是正还是负,就只能是正数,这就是无符号整数。
比如二进制数10001000,如果是有符号整数,十进制为 -120,无符号整数为136
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-1-11 12:39:40 | 显示全部楼层
弄卫星数据遇到的
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-1-11 13:06:03 | 显示全部楼层
还有,如何在fortran程序中输入二进制数,而不是从文件读取
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-1-12 11:01:23 | 显示全部楼层
楼主碰到的问题是C语言写成的文件是带有无符号型的数值。
为了节省存储空间,一般都是使用结构体存储数据为二进制文件。而FORTRAN 语言是无法处理这种带有无符号型数据的,且C语言在写结构体时,结构体中的字节数是很紧密的,没有字节的空余(如结构体的字节总数为1023个字节,如果不使用pragma,则不能将字节气泡去除,可能是1024或1026个字节)。
为了规避这种FORTRAN所不能处理的范围,有两种方法:
1  使用C语言对文件从一而终进行处理。
2  最先使用C语言将数据文件散开(将字节对齐,如上结构体使用1024个或1026个字节)写成文本文件(一般是头文件信息)或二进制文件(一般是大量数据),然后使用fortran读取进行处理。
3 混合编程。在fortran中调用C语言,注意数据内存地址的传递。

评论:方法1 如果C语言使用很熟悉可以。
          方法2 虽流程多,但流程简单易懂。
          方法3 涉及到混合编程。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-1-14 13:46:02 | 显示全部楼层

非常感谢你的回复。以前不太清楚fortran是否可以直接处理无符号型数据。既然如此,就可以直接按版主的思路来了
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表