发布网友 发布时间:2022-06-09 13:56
共3个回答
热心网友 时间:2023-10-05 10:34
这是python int类型支持的最大值, 同操作系统没有直接关系。追答没错,确认要看代码以及编译环境对long的处理。从公开的信息看,同操作系统没有直接关系。
maxint大致是在这里(匆匆看了一下,没有认真看,未免错漏楼主可以去代码中确认):
SET_SYS_FROM_STRING("maxint",
PyInt_FromLong(PyInt_GetMax()));
宏定义在同一文件内。
函数
long
PyInt_GetMax(void)
{
return LONG_MAX;
}
LONG_MAX:
#ifndef LONG_MAX
#if SIZEOF_LONG == 4
#define LONG_MAX 0X7FFFFFFFL
#elif SIZEOF_LONG == 8
#define LONG_MAX 0X7FFFFFFFFFFFFFFFL
#else
#error "could not set LONG_MAX in pyport.h"
#endif
#endif
SIZEOF_LONG多处定义,如:
ifdef MS_WIN32
。。。
#define SIZEOF_LONG 4 #注意这里
mac:
# ifdef __LP64__
...
# define SIZEOF_LONG 8
...
#else
# define SIZEOF_LONG 4
热心网友 时间:2023-10-05 10:35
如果操作系统是32位的,那么sys.maxint一定是32位的long长度,大约是2开头的一个相当于2GB。2147483648L我的电脑上同时都安装了32位是64为的python,而且我的操作系统也是64位的,但是结果并非你说的那样,见图片
也许是这样。原理上应该是我这样的。我在linux上试了一下。(因为我自己windows上用的是32位)
关键在于编译python时使用的是多少位。也可能存在假的64位。原则上讲,只要是64位。long型绝对是64位。甚至int型都可能是64位。
热心网友 时间:2023-10-05 10:35
跟操作系统有关系