2012-02-24 18 views
0

私はPythonにasmコードを逆コンパイルしようとしています。私は次の行に遭遇しましたmovsx in python

私はPythonでバイトの符号付き拡張を行う方法を探しています。私は現在、個々のバイトを取得するためにbytearrayを使用しています。個々のバイトを取得した後、私はそれらのそれぞれの署名付き拡張を行う必要があります。

+1

私は情報が欠落していると思います。 Pythonは整数型のデータ型を持たないので、 "符号付き拡張子"は必要ありません。 sizefの整数値を持つ配列の 'array'モジュールのようなものを使用している場合、署名された拡張子は必然的に自動的に起こります。 –

答えて

1

私は、次のコードを使用:あなたのケースbでは

# sign extend b low bits in x 
# from "Bit Twiddling Hacks" 
def SIGNEXT(x, b): 
    m = 1 << (b - 1) 
    x = x & ((1 << b) - 1) 
    return (x^m) - m 

はおそらく高速化のビットのためのマスクを事前計算することができます8.なります。

参照されるハックはhereです。