24小时热门版块排行榜    

查看: 3275  |  回复: 7
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

pgi1706

木虫 (小有名气)

[求助] fortran中最大整数问题 已有2人参与

我想输出2**32这个数,但不论是32位编译器,还是64位编译器,总是输不出来。于是我采用下面的输出方法:
Program Main
       integer a
       integer*8 b,c,d
       write(*,*) huge(b)     !huge(b)=9223372036854775807
       a=2**30      
       write(*,*) a               !a=1073741824
       c=2**31                   !  c=-2147483648
       write(*,*) abs(c)        !abs(c)=2147483648
       d=huge(b)/(abs(c))  
       write(*,*) d, d+1                ! d=4294967295
       End
最终d+1就是2**32,能不能不需要通过huge(b)这个函数迂回输出2**32,直接输出不行吗?
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

jiangxingge

金虫 (正式写手)

引用回帖:
6楼: Originally posted by pgi1706 at 2014-05-29 21:49:46
真是奇怪了,我如果直接写成d=2**32,输出来d=0
如果按二楼写成
integer*8 b,c,d
b=2
c=32
d=b**c    或者写成d=2**c
其结果都能正确输出d
谢谢二楼,也谢谢大家!

这涉及到 FOTRAN 表达式的 一个基本规则,就是 计算结果的 类型 是根据 参与计算 的 变量类型 来决定的。
写成 2,32  它的类型 是 Integer*4,有些早期 的 系统 甚至 是 integer*2。
2**32 就是 两个 int*4计算,结果 放到 int*4里面 去 ,溢出了。再赋值到 int*8里面 去 ,白搭了。
写成 2**c 或者 b**c ,或者 b**32 ,由于 参与计算的变量 有 至少一个 int*8,结果就是 int*8,再赋值到 int*8,OK!
7楼2014-07-11 13:54:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 8 个回答

jiangxingge

金虫 (正式写手)

【答案】应助回帖

★ ★ ★ ★
pgi1706: 金币+4, ★★★★★最佳答案, 可行 2014-05-29 21:50:20
通常 的 整形常数 是 integer,其最大值 只有2**31-1
但是 你可以 这样写
integer*8 b,c,d
b=2
c=32
d=b**c
write(*,*) d
3楼2014-05-23 13:25:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

baobiao007

木虫 (职业作家)

中国特色

【答案】应助回帖


pgi1706: 金币+1, 谢谢提供建议 2014-05-29 21:50:45
三楼的方法应该不行吧。。。。。。。。。。。fortran的整形只有kind=2 或 4两种,不能选8的

这类问题属于经典的  大整数  问题。。。。。。。。。。。。。。在c语言里都需要用链表来处理的吧,反正必须借助外部技巧性的函数来处理,估计fortran也一样。。。。。。。楼主可以搜搜  大整数问题 的解决方案
我同意叔本华的观点,人们投身艺术和科学领域的强烈愿望之一就是逃离痛苦、残酷和枯燥无味的现实生活,逃离自己飘忽不定的七情六欲的桎梏。--爱因斯坦
4楼2014-05-23 13:42:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

jiangxingge

金虫 (正式写手)

引用回帖:
4楼: Originally posted by baobiao007 at 2014-05-23 13:42:09
三楼的方法应该不行吧。。。。。。。。。。。fortran的整形只有kind=2 或 4两种,不能选8的

这类问题属于经典的  大整数  问题。。。。。。。。。。。。。。在c语言里都需要用链表来处理的吧,反正必须借助外部技 ...

通常 的 32位操作系统 不支持 integer*8,但是 新的 64位 可以支持。我看楼主的 程序 中 用了 ,说明 他的环境是支持的。
5楼2014-05-23 13:50:20
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 咱们一起用铁证分析2026国家社科基金中标与否 +6 启萌科技 2026-08-12 21/1050 2026-08-14 19:48 by 启萌科技
[基金申请] 哪位老哥知道今年的国自然具体哪一天放榜? +5 Ldrop2023 2026-08-13 5/250 2026-08-14 18:48 by ssxclkj
[基金申请] 国基金的申报应该改成非等额制,评价高的钱多评价低的钱少,但是增加资助率 +8 a089 2026-08-07 8/400 2026-08-14 18:46 by beefly
[基金申请] 各位道友,我要去昆明玩几天,回来见。 +6 Tide man 2026-08-14 7/350 2026-08-14 18:36 by 正能量1斤
[硕博家园] 请教兼职经验 +3 是阿文鸭 2026-08-09 3/150 2026-08-14 12:07 by HER12025
[基金申请] 小木虫上这么多卖论文的,真有人买论文么?感觉没必要啊 +10 Tide man 2026-08-10 11/550 2026-08-14 10:30 by 沁言学术
[硕博家园] 读博的好处 +4 lnee 2026-08-11 4/200 2026-08-14 10:20 by ahsoarli
[基金申请] FileCode能看出啥? +10 要乐观耀哥 2026-08-10 32/1600 2026-08-14 09:37 by 要乐观耀哥
[文学芳草园] 阿姨 +4 汪汪锅 2026-08-09 4/200 2026-08-13 19:43 by arzu_hma
[硕博家园] 一作与独作在应聘高校教师时区别大吗 +3 mbygzh 2026-08-08 4/200 2026-08-13 19:31 by 龙-樱
[基金申请] 静等基金结果 +8 gjjjzhong 2026-08-10 21/1050 2026-08-13 17:56 by 且听虎啸
[基金申请] 重要来源:本周末出结果 +10 瞬息宇宙 2026-08-12 10/500 2026-08-13 15:46 by likettle
[基金申请] 2019年青年基金涵评意见,大家看看几个A,几个B? +11 Tide man 2026-08-11 11/550 2026-08-13 07:35 by 撸猫猫
[基金申请] 综述论文作为代表作会不会影响评审专家的印象分? +11 yufeiwaner 2026-08-09 13/650 2026-08-12 08:17 by yufeiwaner
[基金申请] 是这周出结果还是下周出结果? +3 yuleib84 2026-08-11 3/150 2026-08-11 21:53 by jnhyjjm
[基金申请] 为什么网上很多人说本周 12号出结果 +6 瞬息宇宙 2026-08-10 7/350 2026-08-11 19:25 by Tide man
[基金申请] 确定了,国自然21号放榜 +6 布布和一二 2026-08-10 7/350 2026-08-10 19:15 by 2000zf36392
[基金申请] 这样的filecode谁见过 +11 布布和一二 2026-08-08 22/1100 2026-08-10 11:10 by wmfsnow
[基金申请] 面上项目filecode邪修 +5 西山十月 2026-08-09 7/350 2026-08-10 07:32 by 仁砚薪传
[基金申请] 关于filecode,很负责任的告诉大家 +6 爱看书的可乐 2026-08-08 7/350 2026-08-08 22:13 by a_niu
信息提示
请填处理意见