python中unicode字符串的转换
问题描述:
我需要将Python中的unicode字符串转换为其他类型,例如unsigned和signed int 8位,unsigned和signed int 16位,unsigned和signed int 32位,unsigned和signed int 64位,双字,浮点,字符串,无符号和有符号8位,无符号和有符号16位,无符号和有符号32位,无符号和有符号64位。python中unicode字符串的转换
我需要你的帮助。
答
使用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中重现它,至少不需要编写大量的代码。
我想如果你想得到更多的帮助,你必须更准确地了解你想达到的目标。
@Douglas:我很佩服你的心灵能力(或者你的运气:)。我仍然看不到从问题 - 指定 - 直接连接到“使用int()将字符串转换为整数”...我只会建议结构模块。 – tzot 2008-12-18 09:02:32