gpt4 book ai didi

Python:将十六进制字符串转换为 int 并返回

转载 作者:行者123 更新时间:2023-11-28 20:21:47 33 4
gpt4 key购买 nike

我的 python 脚本通过串行线路获取和发送字词。每个单词都是一个带符号的 24 位值,以十六进制字符串的形式接收。脚本现在应该获取这些字符串并将它们转换为整数,对其进行一些计算,然后以相同的格式将它们发回。我的问题是,如何进行这种转换

Examples

Rx string -> calc int
012345 -> 74565
fedcba -> -74566

calc int -> Tx string
74565 -> 012345
-74566 -> fedcba

如何做到这一点?

最佳答案

def str_to_int(s):
i = int(s, 16)
if i >= 2**23:
i -= 2**24
return i

def int_to_str(i):
return '%06x'%((i+2**24)%2**24)

测试结果:

In [36]: str_to_int('012345')
Out[36]: 74565

In [37]: str_to_int('fedcba')
Out[37]: -74566

In [38]: int_to_str(74565)
Out[38]: '012345'

In [39]: int_to_str(-74566)
Out[39]: 'fedcba'

引用:Hex string to signed int in Python 3.2?

关于Python:将十六进制字符串转换为 int 并返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26283129/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com