首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python中的短整数

Python中的短整数 (short integers) 是指Python的内置类型 int 的子类,它可以处理比 int 子类规定的范围小的整数。

下面是 Python 中 short integers 的例子:

代码语言:txt
复制
class short_integers:
    def __init__(self):
        self.max = 2**7 - 1
        self.min = -2**7 + 1

    def __add__(self, other):
        return short_integers(self.max + other.max + 1)

    def __sub__(self, other):
        return short_integers(self.max - other.max + 1)

    def __and__(self, other):
        return short_integers(self.max - other.min + 1)

    def __or__(self, other):
        return short_integers(self.min + other.min - 1)

    def __xor__(self, other):
        return short_integers(self.min - other.max + 1)

    def __or_(self, other):
        return short_integers(self.min - other.min + 1)

    def __and_(self, other):
        return short_integers(self.max + other.max - 1)

    def __lshift__(self, other):
        return short_integers(self.max + other.min - 1)

    def __rshift__(self, other):
        return short_integers(other.min + self.min - 1)

    def __rlshift__(self, other):
        return short_integers(self.max - other.max + 1)

    def __rrshift__(self, other):
        return short_integers(other.max + self.min - 1)

    __rrshift__.__doc__  = __rshift__.__doc__
    short_integers.__rlshift__ = __rlshift__
    short_integers.__rrshift__ = __rrshift__

short integers 可以处理非常小的整数,但并不是所有情况下使用 short integers 都是好的,例如,有时候需要更长的整数来存储或者处理更精确的信息。因此,在选择 short integers 之前,需要确定它是否能满足所有的应用需求。总体来说,short integers 是一种非常有用的类型,但它也有其局限性。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Python整数实现机制

Python一切东西皆为对象,那么每次给变量赋值是不是都需要新建一个对象呢?...实际编程过程,像1、3、5这样整数使用频率比整数10000、11000使用更为频繁,对于低频整数每次都创建空间可能对于程序性能影响并不大,但是对于较小整数,由于其使用频率非常高,所以每次申请赋值都需要为其分配一个新空间...对于这个问题,Python明智地将整数分成了小整数和大整数两种类型,对于两种不同类型数据分别采取了不同方案: 小整数:将这部分有限整数缓存于内存,可共享。...大整数:将其放入使用单链表维护对象池中,非共享,及每次创建都需要为其分配一块新内存,即使内存已经存在相同整数。...通过上述两个简单示例验证了大整数和小整数处理策略,但是整数多小才称之为小整数?多大又是大整数? 对于这个问题可以在python源码对于整数实现找到答案。

66520

python整数方法(python取整符号)

大家好,又见面了,我是你们朋友全栈君。 Python round() 有两个参数,第一个参数是需要处理数,第二个参数是数位精度,默认为0。...round(3.4) ## 3 round(3.5) ## 4 而有时候会出现奇怪情况,比如:round(3.24, 1) #是四舍五入 ## 3.2 round(3.26, 1) #是四舍五入 ##...######## round(0.44, 1) #是四舍五入 ## 0.4 round(0.46, 1) #是四舍五入 ## 0.5 round(0.45, 1) #是四舍五入 ## 0.5 很多人说Python3...采用是【四舍六入五留双】,上面的例子说明这种说法是不正确。...其实是因为:十进制小数在计算机内是通过二进制小数来近似,在舍和进两个选项中选择更接近一个 而当舍和进两个选项十分接近时,round 选择偶数选项 这就导致出现结果非常复杂了。

4.7K20
  • 程序整数

    1. 2补码 在计算机整数是用2补码表示,其定义如下(非官方定义,自己总结): 最高位(首位)是符号位,为0代表正数,为1代表负数 对于非负整数(大于等于0整数),其补码等于原码(也就是说...根据前面介绍转换规则,转为十进制后为-1234。 二、整数在程序表示 本章以下面的代码为例,看看整数在汇编代码和运行期形态。...整数在汇编代码表示 以arm平台为例进行分析,使用下面的指令对a.out进行反汇编: helloworld@ubuntu:~$ arm-linux-gnueabihf-gcc -g main.c...整数在内存表示 通过gdb可以看到变量signed_int和unsigned_int在内存信息如下所示: ?...signed_int和unsigned_int位于连续8字节内存区域中,其中signed_int在低地址处(当前栈帧栈顶),和上面的栈示意图一致 内存存储就是对应数字补码(小端序存储) 三、对整数解读

    1.4K20

    Python实现输入一个整数案例

    usr/bin/python3.5 # -*- coding:utf-8 -*- a = input("请输入一个整数:") #pythoninput函数输出是一个字符串,而只有通过int进行强制转换...a = int(a) b = input("请输入一个整数:") b = int(b) """ divmod()函数用法 def divmod(x, y): # known case of builtins.divmod...Invariant: div*y + mod == x. """ return (0, 0) 函数返回是两个值,第一个是一个x//y整数,而x%y是一个求余 """ n, r = divmod(...a, b) if __name__ =='__main__': print("n=", n, "r=", r) 补充知识:python输入一个三位数以上整数,输出其百位以上数字(同每个位置上数字...x=x//10//10 以上这篇Python实现输入一个整数案例就是小编分享给大家全部内容了,希望能给大家一个参考。

    1.6K10

    Python竟然能把“长”变成“”?

    人生苦短,快学Python!大家好,我是小五 最近我遇到了一些问题:需要将几百条长链接转成链接。...经过一番学习,发现Python可以轻松解决这个问题,不仅可以实现缩短【长链接→链接】,也可以实现还原【链接→长链接】。...一条长链接 缩短链接 【长链接→链接】缩短链接,就是把长要死链接,缩短到只有几个字符那么长。 这么做是为了什么呢?...某付费链接网站 在交互式环境输入如下命令: from urllib.parse import quote import requests import json # 先对要缩短网址进行urlencode...URL参数字符串中使用key=value键值对这样形式来传参,如果value字符串包含了=或者&,那么会造成接收Url服务器解析错误,因此必须将引起歧义&和=符号进行转义,也就是对其进行编码[1

    76020

    Python组合列表多个整数得到最小整数(一个算法巧妙实现)

    '''程序功能: 给定一个含有多个整数列表,将这些整数任意组合和连接, 返回能得到最小值。...代码思路: 将这些整数变为相同长度(按最大进行统一),右侧使用个位数补齐 然后将这些新数字升序排列,将低位补齐数字删掉, 把剩下数字连接起来,即可得到满足要求数字'''...def mergeMinValue(lst): # 生成字符串列表 lst = list(map(str, lst)) # 最长数字长度 m = len(max(lst, key=...len)) # 根据原来整数得到新列表,改造形式 newLst = [(i,i+i[-1]*(m-len(i))) for i in lst] # 根据补齐数字字符串进行排序...newLst.sort(key=lambda item:item[1]) # 对原来数字进行拼接 result = ''.join((item[0] for item in newLst))

    2.8K60

    奇怪 Python 整数缓存机制。

    首先我们打开 Python 解释器,在里面输入如下内容: >>> a = 1024 >>> b = 1024 >>> a is b False 当 a 和 b 值皆为 1024 时候,a is b...在内存,id 这一串 xxxxx 数字其实是给了 a,is 去比较时候其实是比较这个 id 是不是同一个。...is 判断两个是不是引用同一个对象和上述代码 id 输出结果,照猫画虎,得出了一个结论:当 a 和 b 等于 1000 时候,a 和 b 引用不是同一个对象;当 a 和 b 等于 6 时候,a...其实这就是 Python 整数缓存机制」在作怪! 在 Python ,它会对比较小整数对象进行缓存([-5, 256]),而并非是所有的整数对象。...刚刚只是在命令行执行时候,当在 Pycharm 或者在文件执行时候,因为解释器做了部分优化,结果又完全不一样了,范围成了大于等于 -5 任意整数

    1K40

    链接实现

    链接,可以将一个较长、携带参数url简化成一个可以接受长度。...生活,经常会在手机短信广告中出现,因为短信服务本身对短信长度有限制,如果使用一个非常长链接,几百字符很快就能用完,关键信息字符数被挤压,影响了服务方广告价值同时也影响了消费者观感,通过短链可以解决这个问题...当然百度链并非完全是这样功能,如果访问了自己资源,我们会发现,状态码是200,即表示直接将页面渲染了,这样巧妙将不同逻辑相似功能整合到了一个访问上。...基本原理 原理其实是非常简单,关键就是 资源映射表 + 重定向 。 资源映射表可以通过各种数据来记录,记录链与实际资源地址映射关系。...使用long入参是因为redis自增返回是long类型,而且long也能存储更多链。

    46720

    数据在内存存储——整数

    ——袁枚 1、整数存储 任意一个整数(当然是不能超过INT_MAX一个数字),都是以2进制表示方式存储,表示方法有三种,分别为原码,反码,补码 而这三种方法都是既有符号位又有数值位两个部分,...当然不管是正数还是负数,整数存储存放就是补码。...其实,可以调试一下,既然在监视内存时候会转化为16进制,那我们就设置一个值,整数,但是以16进制写,并且,还要能清楚方便哪是开头,哪是结尾,肯定是不能写一个全是一个数字数吧。下面看这段!...==大端:==是指数据低位字节内容保存在内存高地址处,而数据高字节内容,保存在内存低地址处。...%d - 是以十进制形式打印有符号整数 整型提升: 1、当是无符号时候,提升时候,高位补0。 2、当是有符号时候,提升时候,是按照最高位置补,0的话就补上0,1的话就补上1。

    19510

    常用代码插件:WPJAM Basic 代码扩展

    ,经典编辑器很多内容无法自己生成,例如表格之类,所以这款免费插件就能帮你! 温馨提示:请将以下代码开头 # 替换成 [ 否则将无法正常使用!...WPJAM Basic 常用代码扩展内置了一些可能经常使用到代码」(Shortcode),让你在编辑文章时候插入复杂格式内容更加方便,目前支持代码(Shortcode)有这些: email...,机器人是很难收集,但是普通用户则可以直接阅读,不受影响。...的话,使用以下代码: #youku width="600" height="500"]http://v.youku.com/v_show/id_XXXXXXXXXXX.html[/youku] 后台代码列表...另外还在后台列罗出所有的代码: 本文二次修改自:https://blog.wpjam.com/m/wpjam-basic-shortcode/

    1.3K30

    Python整数有没有边界?

    秒钟读一位,要读 5 天多,足以说明,Python 整数是没有边界,只是数越大,计算时间越长而已。...但是,在编程时候,如果要取最小值,通常要定义一个变量 min,初始值设置为最大,然后计算结果比这个 min 小时候,就把这个结果赋值给 min,那如何在 Python 定义这个初始值呢?...比如说,在 Java ,我们有 Integer.MIN_VALUE 和 Integer.MAX_VALUE,Python 有类似的固定值么?...答:有,虽然 Python int 是没有边界,但是如果你只需要一个比其他数字更大数字,你可以使用 float('inf'), 以类似的方式,比其他所有数字都小:float('-inf') ,...Python3 sys.maxsize 和 Python2 sys.maxint,Java Long.MIN_VALUE 相当于 Python3 -sys.maxsize -1 和 Python2

    78310

    Python 整数与 Numpy 数据溢出

    在开始之前,先总结一下上图会引出的话题: Python 3 整数上限是多少?Python 2 呢? Numpy 整数上限是多少?整数溢出该怎么办?...对于第一个问题,两个版本 Python 有所区别。先看看 Python 2,它有两种整数: 一种是整数,也即常说整数,用 int 表示,有个内置函数 int()。...但是到了 Python 3,情况就不同了:它仅有一种内置整数,表示为 int,形式上是 Python 2 整数,但实际上它能表示范围无限,行为上更像是长整数。...理论上,Python 3 整数没有上限(只要不超出内存空间)。这就解释了前文中直接打印两数相乘,为什么结果会正确了。...来作个结尾吧: Python 3 极大地简化了整数表示,效果可表述为:整数就只有一种整数(int),没有其它类型整数(long、int8、int64 之类) Numpy 整数类型对应于 C 语言数据类型

    2.1K41
    领券