代码之家  ›  专栏  ›  技术社区  ›  Mark

在python中,如何将2字节长的字符串转换为整数

  •  5
  • Mark  · 技术社区  · 16 年前

    我有一个python程序,我继承了它并试图扩展它。

    我已将一个两字节长的字符串提取为一个名为pS的字符串。

    pS第一个字节是0x01,第二个字节是0x20,十进制值==288

    我试着把它的值作为一个整数,我用了表格中的行

    x = int(pS[0:2], 16)  # this was fat fingered a while back and read [0:3]
    

    得到信息

    ValueError: invalid literal for int() with base 16: '\x01 '
    

    另一个C程序员和我整天都在谷歌上搜索并试图让它工作。

    请给我建议。

    2 回复  |  直到 16 年前
        1
  •  20
  •   S.Lott    16 年前

    看看 struct 模块。

    struct.unpack( "h", pS[0:2] )
    

    对于有符号的2字节值。使用“H”表示未签名。

        2
  •  4
  •   sth    16 年前

    您可以使用 ord 然后以适当的方式将它们相加:

    x = 256*ord(pS[0]) + ord(pS[1])