首页
学习
活动
专区
工具
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源码中对于整数的实现找到答案。

67020

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竟然能把“长的”变成“短的”?

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

    77920

    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 的任意整数。

    1.1K40

    短链接的实现

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

    48820

    常用短代码插件: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.4K30

    数据在内存中的存储——整数

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

    23710

    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

    79410

    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

    小白必读:闲话HTTP短连接中的Session和Token

    1、引言 Http协议在现今主流的IM系统中拥有无可替代的重要性(在IM系统中用HTTP发起的连接被大家简称为http短连接),但Http作为传统互联网信息交换技术,一些典型的概念比如:Session、...更深入的技术细节,请阅读《IM开发基础知识补课(四):正确理解HTTP短连接中的Cookie、Session和Token》。...▲ 现在的“互联网”已无比庞大 (本图来自:《技术往事:改变世界的TCP/IP协议(珍贵多图、手机慎点)》一文) 3、相关文章 《IM开发基础知识补课(四):正确理解HTTP短连接中的Cookie、Session...》 《现代移动端网络短连接的优化手段总结:请求速度、弱网适应、安全保障》 《腾讯技术分享:社交网络图片的带宽压缩技术演进之路》 《小白必读:闲话HTTP短连接中的Session和Token》 《...:一场有始无终的开源秀》 《QQ音乐团队分享:Android中的图片压缩技术详解(上篇)》 《QQ音乐团队分享:Android中的图片压缩技术详解(下篇)》 《腾讯原创分享(一):如何大幅提升移动网络下手机

    66730
    领券