整数をバイト列の配列に変換しようとしています。負の数の2の補数の16進数を取得
def int2Hex():
hex = '%08x' % 32
bytes = []
for i in range(0,4):
bytes.append('0x' + hex[i*2: i*2 + 2])
return bytes[::-1] #return in little endian
上記のコードは正の数の作品:['0x00', '0x00', '0x00', '0x20']
が、私は負の数を使用する場合、私はこのような何か買ってあげる:['0x-0', '0x00', '0x00', '0x20']
私は負の数のためにしたいことは2の補数ですバイト。私はあなたがそれが役に立つことを願っ
def int2hex(number, bits):
""" Return the 2'complement hexadecimal representation of a number """
if number < 0:
return hex((1 << bits) + number)
else:
return hex(number)
:私はあなたがこれを使用することができますのpython 2.
内部どのような形式が対応することになって、 "バイト" していますか? 'int'sは32ビットとビッグエンディアンではありません。範囲外の数字はどうですか? –
タスクは、符号付き整数を符号なしに変換することに変わりはありません。 –