Num.to_bytes触发OverflowError:整数过大无法转换的问题求助
问题分析与解决建议
错误原因
4字节(32位)有符号整数的取值范围是 -2147483648 到 2147483647,你要转换的整数 -10947726235 远小于这个范围的最小值,因此触发 OverflowError。
解决方法
将字节数调整为8字节(64位),64位有符号整数的取值范围是 -9223372036854775808 到 9223372036854775807,完全可以容纳 -10947726235。修改后的代码如下:
Num = -10947726235 ByteArray = Num.to_bytes(8, byteorder='little', signed=True)
你可以通过以下代码验证转换的正确性:
# 还原整数 restored_num = int.from_bytes(ByteArray, byteorder='little', signed=True) print(restored_num) # 输出:-10947726235
额外提示
如果业务要求必须使用4字节存储,需要先确认该整数是否为预期值——可能存在输入错误或业务逻辑中的数值范围问题,需先将数值修正到4字节有符号整数的范围内。
内容的提问来源于stack exchange,提问作者Zvi Vered
相关产品推荐
相关产品推荐

