python - Python十六进制字符串到整数转换错误
问题描述
我正在尝试将此库从 Javascript 移植到 Python,但在尝试将十六进制字符串转换为整数时不断收到一个奇怪的错误。它适用于短字符串,但由于某种原因会阻塞较大的字符串:
ValueError: invalid literal for int() with base 16: '14fdbc5ade9e3d4097f421fe7b4b54ad05883d589c3b3f6648b5e0ea2b64b359158087b793b859a4c51af0fd8c1edb7a92b8d5843c1a2d659929357c7e1869784435d6dcfd8d29b619194333b38655493eb4eb3deeffbf339e91c7c0f6113b4bb6672f49'
代码如下所示:
def stretch(value):
hexadecimal = hex(value)[2:]
buffer = hexadecimal
while True:
buffer += record_separator + hexadecimal
if len(buffer) >= minimum_digits:
break
return int(buffer, 16)
解决方案
Python 3 对其整数值没有限制。
因此,您可以使用 int(hex_string, 16) 将大字符串转换为整数值。
s = '14fdbc5ade9e3d4097f421fe7b4b54ad05883d589c3b3f6648b5e0ea2b64b359158087b793b859a4c51af0fd8c1edb7a92b8d5843c1a2d659929357c7e1869784435d6dcfd8d29b619194333b38655493eb4eb3deeffbf339e91c7c0f6113b4bb6672f49'
s_int = int(s, 16)
print(s_int)
结果
546755182137531943293891170863886409257177002102958031106970218913938945216495276608761007929774380907079475078176395384371438944791022503587328767282546555465705414556027853888426781796298321719051075009856267471199860627126795651319803721
推荐阅读
- javascript - 从 useEffect 和其他函数调用函数
- javascript - React Plus Django:在创建新的 Todo 项目时无法更新 django 后端
- css - 将侧边栏从左侧移动到右侧
- python - K 的 top terms 意味着聚类质心有重复的单词
- javascript - NavLink 呈现应有的效果,但不起作用
- javascript - 如何使用 MathJax.typeset() 解析动态加载的内容?
- csv - 在prolog中将列表元素写入csv
- c# - 在 App Owns Data 场景中创建报表时“此内容不可用”
- json - 如何在 Go 中处理嵌套的 JSON 数据
- laravel - 如何路由视图和 css 中的所有图像以在 Laravel 中使用 IMGIX url?