我需要将Python中的Unicode字符串转换为其他类型,例如无符号和有符号int 8位、无符号和有符号int 16位、无符号和有符号int 32位、无符号和有符号int 64位、双精度、浮点数、字符串、无符号和有符号 8 位、无符号和有符号 16 位、无符号和有符号 32 位、无符号和有符号 64 位。
int()
将字符串转换为整数。 Python 没有不同的固定宽度整数,所以你只能得到一种类型的东西。
struct
将整数打包成固定宽度:
res = struct.pack("=B",i) ## uint8_t
res = struct.pack("=b",i) ## int8_t
res = struct.pack("=H",i) ## uint16_t
res = struct.pack("=h",i) ## int16_t
res = struct.pack("=I",i) ## uint32_t
res = struct.pack("=i",i) ## int32_t
res = struct.pack("=Q",i) ## uint64_t
res = struct.pack("=q",i) ## int64_t
res = struct.pack("=f",i) ## float
res = struct.pack("=d",i) ## double
struct
生成包含二进制数字的字节字符串。
编辑: 从评论来看,您似乎只想将字符串(十进制数字)转换为整数。只需使用
int()
即可,但是您不会获得指定类型的所有复杂的上溢/下溢语义。你无法在 python 中重现这一点,至少在不编写大量代码的情况下无法重现。
我认为如果您需要更多帮助,您必须更准确地了解您想要实现的目标。