2009-05-05 16 views
4

私が継承して拡張しようとしているPythonプログラムがあります。2バイト長の整数をPythonの整数に変換するには

私は、2バイト長の文字列をpSという文字列に抽出しました。

は、二つ目は0x20に、私は整数としての値を取得しようとしてきた288

が、私は、フォームの行を使用しました小数点値==

のPS第一バイトが0x01である ある

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プログラマを取得し、私はグーグルと、これは一日仕事に取得しようとしてきました。

提案してください。

+0

youpleaseはの出力を示してもらえますか?なぜint(pS [0:3]、16)が機能しないのかは私には不明です。 "0x"接頭辞はありませんか? – Tom

答えて

18

structモジュールを見てください。

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

符号付き2バイト値の場合。符号なしの場合は "H"を使用します。

4

あなたはordとその文字コードに文字を変換して、適切な方法でそれらを一緒に追加することができます:「印刷PS」:

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

多くの、多くのありがとう!これでやった! –

関連する問題