首页 > 编程语言 >Python int 最大最小值

Python int 最大最小值

时间:2023-01-26 23:11:48浏览次数:43  
标签:digit mid Python 32 ob times int 最小值 times5

Python int 最大最小值

若有错误还请大佬指出

Answer

不多说,先上答案:注:这是理论上

\(\mid\) :这个表示整除

e.g. : \(5\mid2=2\)

max

32位

\[2^{32\times(2^{31}-1)\mid 5\times5} \]

64位

\[2^{32\times(2^{63}-1)\mid 5\times5} \]

min

32位

\[-2^{32\times(2^{31}-1)\mid 5\times5} \]

64位

\[-2^{32\times(2^{63}-1)\mid 5\times5} \]

Because

以下知识涉及到 C语言

以下都以 64 位来举例

int 的基本结构

// Python 源码

typedef __int64 Py_ssize_t;
...
#define PyObject_VAR_HEAD PyVarObject ob_base;
...
typedef struct {
    PyObject ob_base;
    Py_ssize_t ob_size; /* Number of items in variable part */
} PyVarObject;
...
typedef uint32_t digit; // 无论是 32bits 还是 64bits, `digit` 都是 uint32_t
struct _longobject {
    PyObject_VAR_HEAD
    digit ob_digit[1];
};

过程

max

从上可以知道,ob_size 是存的 ob_digit 的表示的长度,所以 ob_digit 最多可以有 LLONG_MAXdigit,也就是 \(2^{63}-1\) 个 digit

因为 digituint32_t,所以 ob_digit 最大可以有 \(32\times(2^{63}-1)\) 个 bit


在 Python 中有个机制,就是如果 ob_digit 可以用 \(16\) 个 bit 的话那就只用其中的 \(15\) 个 bit

这个数量是向 \(5\) 对齐的 。可以用 \(x\mid 5\times 5\) 求出,其中 x 表示可用的 bit

所以 ob_digit 最多有效的 bit 个数是 \(32\times(2^{63}-1)\mid 5\times5\) 个。

然后直接求出最大值是 \(2^{32\times(2^{63}-1)\mid 5\times5}\)。

min

注意这个 Py_ssize_t 它是一个 __int64,是一个有符号的。ob_size 是正数那么这个 int 就是正的,ob_size 是负数那么这个 int 就是负的。

也就是 ob_size 的符号就是这个 int 的符号。

所以最小值是 \(-2^{32\times(2^{63}-1)\mid 5\times5}\)

标签:digit,mid,Python,32,ob,times,int,最小值,times5
From: https://www.cnblogs.com/kuailedetongnian/p/17068375.html

相关文章

  • Python pip
    Pythonpip设置全局镜像pipconfigsetglobal.index-urlhttps://pypi.tuna.tsinghua.edu.cn/simple安装指定版本的包pipinstall[包名]==[版本号]这个方法也可......
  • 02 python初识
    Python初识一、入门基础1.第一个Python程序python代码都是编写在以.py结尾的文件中。我们随便新建一个文件,并将文件后缀名改为.py,在里面编写我们的第一个python......
  • Intellij idea 快捷键(3)--生成常用代码
    上篇已经讲过一些生成常用代码块的代码.接下来再补充一些常用的.。在使用Intellijidea开发过程中,一些快捷生成代码块的操作简直是不能再爽more了,而且会让你感觉使用起来......
  • objectarx调用python注意点
    1.用conda先装好虚拟环境,为了兼容cad2010,最高只能用python3.5(已经不维护了),如果cad高版本建议python3.6+2.能用pip安装的就用pip安装,不能用pip安装的不要直接用co......
  • Serverless架构下用Python轻松实现图像分类和预测
    Serverless架构下用Python轻松实现图像分类和预测图像分类是人工智能领域的一个热门话题。通俗解释就是,图像分类是一种根据各自在图像信息中所反映的不同特征,把不同类别的......
  • Python内置函数
    5.6Python内置函数Python自带的所有内置函数如下:Python函数以上为Python3.10中所有的内置函数,其中绝大部分在前面的学习当中都已经接触过了。这里在补充介绍下没有......
  • Intel开发者手册
    官方链接​​​Intel®64andIA-32ArchitecturesSoftwareDeveloper’sManuals​​AMD开发者手册(AMD64ArchitectureProgrammer’sManuals)​​​AMD64Architecture......
  • Python入门之选择语句&循环语句练习
    """选择语句ifbool类型的条件:pass满足条件执行的语句else:不满足条件执行的语句----------------------------......
  • Python入门之初识while循环
    """循环语句while条件:循环体"""#死循环:循环条件永远是满足的。whileTrue:usd=int(input("请输入美元:"))print(usd*6.9)i......
  • python3.10调用邮件SMTP报错: ssl.SSLError: [SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] s
    一:python3.10调用邮件SMTP报错:ssl.SSLError:[SSL:SSLV3_ALERT_HANDSHAKE_FAILURE]sslv3alerthandshakefailure(_ssl.c:997)解决报错内容File"c:\Users\Le......