Python 将字符串转换为整数的快速有效方法
我想将四个字符的字符串文本转换为32位整数,例如,四个空格字符串应返回0x202020。所有字符串元素都是ASCII。我知道像这样的方法很管用Python 将字符串转换为整数的快速有效方法,python,string,integer,Python,String,Integer,我想将四个字符的字符串文本转换为32位整数,例如,四个空格字符串应返回0x202020。所有字符串元素都是ASCII。我知道像这样的方法很管用 number = ord(text[0]) << 24 | ord(text[1]) << 16 | ord(text[2]) << 8 | ord(text[3]) << 0 但这是相当缓慢和低效的。有没有更快的办法 编辑:这是通过C/Assembler脚本向LCD显示器发送字符串的算法的一部分。字符串
number = ord(text[0]) << 24 | ord(text[1]) << 16 | ord(text[2]) << 8 | ord(text[3]) << 0
但这是相当缓慢和低效的。有没有更快的办法
编辑:这是通过C/Assembler脚本向LCD显示器发送字符串的算法的一部分。字符串必须拆分为包含数字的列表,每个数字代表四个字符
注意。您可以使用text=>bytes=>int:
int.from_bytes(text.encode(),'big')
快速时间比较:
import timeit
print(timeit.timeit("int.from_bytes(text.encode(),'big')","text = 'abcd'"))
print(timeit.timeit("ord(text[0]) << 24 | ord(text[1]) << 16 | ord(text[2]) << 8 | ord(text[3]) << 0","text = 'abcd'"))
因此,int.from_字节的速度大约是显式位移位速度的两倍。根据您的应用程序,idtext可能是一个选项。此转换有什么用途?@schwobasegll将数据发送到C/汇编脚本,然后将其发送到LCD显示器
0.21847990699999997
0.4186516309999999