python - 在 python 中将 base 10 整数对转换为 ascii 字符的最佳方法

标签 python python-2.7 ascii

我正在使用串行接口(interface)与一台测试设备通话。设备的两个字母 ascii ID 在特定寄存器中被编码为以 10 为底的整数。每对整数都需要转换为 ascii 字符。我的问题是进行这种转换的最佳方法是什么。我使用了下面的方法,但对于这样一个简单的任务来说它似乎相当复杂。

例子

输入:5270 期望的输出:'4F'(ascii 值 52 和 70)

get the raw register value
>>> result =f4.read_register(0,)
>>> result
5270
convert the integer into a list of chars
>>> chars = [i for i in str(result)]
join the pairs together
>>> pairs = [''.join((chars[x], chars[x+1])) for x in xrange(0,len(chars),2)]
>>> pairs
['52', '70']

>>> pairs = [chr(int(x)) for x in pairs]
>>> pairs
['4', 'F']

最佳答案

除了@BhargavRao 的回答,您还可以使用 divmod内置:

num = 5270
''.join(map(chr, divmod(num, 100)))

# '4F'

您还可以使用字符串格式:

'{:c}{:c}'.format(*divmod(num, 100))

# '4F'

关于python - 在 python 中将 base 10 整数对转换为 ascii 字符的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30793198/

相关文章:

javascript - 使用 Flask 托管模板文件时遇到问题

python - 如何使用 Python Pandas 聚合、获取百分比以及重新分配列和行?

c# - Console.Clear() 超时后

c++ - 为什么 C11 或 C++11 中没有 ASCII 或 UTF-8 字 rune 字?

python - 如何从 Windows 中彻底删除 Anaconda3?

sql-server - SQL Server 在阿拉伯语_CI_AS 排序规则中 'ی' 和 'ي' 之间没有区别

python - 为什么 Python 对可以嵌套的静态 block 的数量有限制?

python - 如何从 mysql 查询运行 python 脚本?

python - 使用 Python 动态地将值写入 Excel 中的单元格

python-2.7 - SSL(缩进错误)使用 virtualenvwrapper (_lib.SSL_ST_INIT)