2012-04-18 34 views
2

長い16進数の計算をする必要がありますので、整数に変換したいのですが、まずスペースとEOL文字を削除しようとします。しかし、私は変換を試みるときにエラーが発生します: "基数16のint()のリテラルが無効です"。コードは次のとおりです。Pythonの16進数変換エラー

p = """670C354E 4ABC9804 F1746C08 CA18217C 32905E46 2E36CE3B 
E39E772C 180E8603 9B2783A2 EC07A28F B5C55DF0 6F4C52C9 
DE2BCBF6 95581718 3995497C EA956AE5 15D22618 98FA0510 
15728E5A 8AAAC42D AD33170D 04507A33 A85521AB DF1CBA64 
ECFB8504 58DBEF0A 8AEA7157 5D060C7D B3970F85 A6E1E4C7 
ABF5AE8C DB0933D7 1E8C94E0 4A25619D CEE3D226 1AD2EE6B 
F12FFA06 D98A0864 D8760273 3EC86A64 521F2B18 177B200C 
BBE11757 7A615D6C 770988C0 BAD946E2 08E24FA0 74E5AB31""" 

pps = hex(int(p, 16)) 
print pps 
+1

'int型( '' したいと思います参加(p.split ()、16) ' – AdamKG

答えて

7

私はあなたが

pps = int(''.join(p.split()), 16) 
+0

囲んでいる' hex() 'を追加しますか? – jamylak

+0

@jamylak:それは何に役立ちますか? – georg

+0

OPのコードを完成させるだけです。 – jamylak

3

最初に空白文字を削除します。あなたは、例えばre.subを使用して、この操作を行うことができます。

p = re.sub(r'\s', '', p) 

それがオンラインで作業を参照してください:。ideone

2
pps = hex(int(p.translate(None,' \n'),16)) 
関連する問題