Fortran Coder

标题: 32位机器大文件IO [打印本页]

作者: 愤怒的三炮    时间: 2023-4-4 08:02
标题: 32位机器大文件IO
32位机器最大整型为 4 个字节,是否意味着使用 open(fid, access= 'stream') 的读取方法无法操作大于 4 GB 的文件?
因为 position 无法指定大于 [latex]2^{32}[/latex] 字节以外的位置。

作者: vvt    时间: 2023-4-4 08:20
本帖最后由 vvt 于 2023-4-4 08:22 编辑

可以用 integer(8) 呀。
32位机器(和32位编译器),只是其内存地址是32位的,寻址空间只有2^32,并不意味着不能使用64位的整数进行计算。


作者: 愤怒的三炮    时间: 2023-4-4 17:39
vvt 发表于 2023-4-4 08:20
可以用 integer(8) 呀。
32位机器(和32位编译器),只是其内存地址是32位的,寻址空间只有2^32,并不意味 ...

我还以为 32 位的最大只支持 4 字节的整型呢。
计算机位数和变量字节数没什么关系是啊?
作者: vvt    时间: 2023-4-5 10:54
本帖最后由 vvt 于 2023-4-5 10:58 编辑
愤怒的三炮 发表于 2023-4-4 17:39
我还以为 32 位的最大只支持 4 字节的整型呢。
计算机位数和变量字节数没什么关系是啊? ...

有关系,但不是简单的关系。
因为CPU架构繁多,不能总结出统一的规律。也没有特意遵循什么规律。

主流的32位架构,一般都会扩展有64位整数的指令集。例如 MMX 指令集之类的,我也不是很懂。
至少 x86 架构用长整型(64位)是没有问题的。所以基于x86的编译器也支持这些数据类型。
具体你使用的架构,编译器,支持哪些类型的整型,你可以看他们的说明书。





欢迎光临 Fortran Coder (http://bbs.fcode.cn/) Powered by Discuz! X3.2