【发布时间】:2011-03-16 13:24:51
【问题描述】:
我在像
这样的字符串中有一个十六进制值h = '00112233aabbccddee'
我知道我可以使用以下方法将其转换为二进制:
h = bin(int(h, 16))[2:]
但是,这会丢失前导 0。有没有办法在不丢失 0 的情况下进行这种转换?或者最好的方法是在转换之前计算前导 0 的数量,然后在之后添加它。
【问题讨论】:
-
您需要
0's 有什么特别的原因吗? -
我稍后使用值 h 作为字典的键。然而,该键具有所有前导 0。
-
您使用二进制字符串表示值而不是整数作为字典键是否有令人信服的理由?
-
@WayneWerner:我一直在寻找这个,所以我可以轻松地比较 50 个二进制数并寻找没有变化的位。
[bin(x).rjust(20) for x in a]已经足够好了。