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中重现它,至少不需要编写大量的代码。

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

+0

@Douglas:我很佩服你的心灵能力(或者你的运气:)。我仍然看不到从问题 - 指定 - 直接连接到“使用int()将字符串转换为整数”...我只会建议结构模块。 – tzot 2008-12-18 09:02:32