我需要Unicode字符串在Python转换为其它类型,如无符号和有符号int 8位,无符号和符号int 16位,无符号和符号int 32位,无符号和有符号整数是64位,双,浮点,字符串,无符号和有符号的8位无符号和有符号的16位无符号和有符号的32位无符号和有符号的64位。

我需要从u人民的帮助。

有帮助吗?

解决方案

使用 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()对于这一点,但你不会得到所有复杂的溢出/指定类型的溢语义。你无法重现,在蟒蛇,至少在没有写一大堆的代码。

我想,如果你想要更多的帮助,你必须更精确地了解你想要达到的目标。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top