愤怒的三炮 发表于 2023-4-4 08:02:55

32位机器大文件IO

32位机器最大整型为 4 个字节,是否意味着使用 open(fid, access= 'stream') 的读取方法无法操作大于 4 GB 的文件?
因为 position 无法指定大于 2^{32} 字节以外的位置。

vvt 发表于 2023-4-4 08:20:47

本帖最后由 vvt 于 2023-4-4 08:22 编辑

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

愤怒的三炮 发表于 2023-4-4 17:39:39

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

我还以为 32 位的最大只支持 4 字节的整型呢。
计算机位数和变量字节数没什么关系是啊?

vvt 发表于 2023-4-5 10:54:02

本帖最后由 vvt 于 2023-4-5 10:58 编辑

愤怒的三炮 发表于 2023-4-4 17:39
我还以为 32 位的最大只支持 4 字节的整型呢。
计算机位数和变量字节数没什么关系是啊? ...
有关系,但不是简单的关系。
因为CPU架构繁多,不能总结出统一的规律。也没有特意遵循什么规律。

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