python实现32位int溢出模拟(类似C,C++)
来源:互联网 发布:被子四件套淘宝 编辑:程序博客网 时间:2024/06/06 05:29
今天的工作中,遇到1个c实现的算法,我要用python实现。c里面有一段是需要将溢出的32位int做为下一步操作的输入。但是在python里,我们知道,当int溢出时,会自动类型转换为long,这样就无法用python实现这个算法。
找了挺多的资料,一开始的思路是:python肯定有某个类似标识位的东西,可以设置int不自动升级为long,很遗憾,没有找到。
后来决定用代码自行控制int的溢出操作。在stackoverflow上有个人提供了以下代码,经测试,可行。
#! /usr/bin/env pythonimport sysdef int_overflow(val): maxint = 2147483647 if not -maxint-1 <= val <= maxint: val = (val + (maxint + 1)) % (2 * (maxint + 1)) - maxint - 1 return vala = 2147483647print int_overflow(a)print int_overflow(a + 1)print int_overflow(a + 2)print int_overflow(a + 3)print int_overflow(100 * a)print '\n'b = -aprint int_overflow(b)print int_overflow(b - 1)print int_overflow(b - 2)print int_overflow(b - 3)print int_overflow(100 * b)
- python实现32位int溢出模拟(类似C,C++)
- C语言实现两个int(32位)整数m和n的二进制表达中找不同位
- C++:模拟实现类似<time.h>的计时功能
- C实现缓冲区溢出
- c语言数据类型对应字节数(32位,64位 int 占字节数)
- c语言数据类型对应字节数(32位,64位 int 占字节数)
- C 语言 int(32位) 内存中的表示
- 【C】写一个宏将一个数字的奇数位和偶数位交换。实现两个int(32位)整数m和n的二进制表达中,位(bit)不同的个数
- C#_二位数组 int[, ]
- C++::模拟实现List
- c++:模拟实现vector
- 【c++】模拟实现堆
- 【C++】模拟实现栈
- 【C++】模拟实现队列
- 关于ZM问到C中int数据范围溢出
- C++、python 写类似全排列算法
- C语言(int&)
- c++(vc)实现类似qq窗口悬挂功能
- 修改文件时间
- 程序设计之---单例模式VS静态方法
- android 之 super关键字
- 【leetcode】Minimum Path Sum
- WinCE应用程序开机自动运行
- python实现32位int溢出模拟(类似C,C++)
- zigzag图像扫描
- Http 基本认证模式
- C++中string的成员函数
- 判断一个数是否是2的幂数,并且判断是多少次方
- yum安装Apache Web Server后各个文件存放位置
- Bootstrap
- 多工程并行开发的项目,避免编译失败
- 用cxf生成的方式,开发web service应用