メモでござる。

Hex文字列をBin文字列に変換したり、その逆に変換するには。

Bin->Hex

まずサンプル。

bindata = "00001011"
hexdata = ""
scale = 2
num_of_digits = 2

hexdata = hex(int(bindata,scale))[2:].zfill(num_of_digits)

print "%s ====> %s" % (bindata, hexdata)

実行例。

00001011 ====> 0b

説明

まずint()で数値に変換する。
その際には第二引数で基数を与える。bin文字列なら2を。hexなら16を与える。
次にその数値をhex()で16進数に変換。
そのままだと頭に0xが付いてしまうので[2:]として取り除く。
さらにzfillで桁数分0で埋める。

Hex->Bin

bindata = ""
hexdata = "1c"
scale = 16
num_of_digits = 8

bindata = bin(int(hexdata,scale))[2:].zfill(num_of_digits)

print "%s ====> %s" % (hexdata, bindata)

実行例

1c ====> 00011100