我需要将 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 中重现它,至少在不编写大量代码的情况下无法重现。
我认为,如果您需要更多帮助,则必须更准确地了解您想要实现的目标。