メモでござる。
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