转换为十六进制

Converting to hexadecimal

我有这个二进制字符串

bit_string = "0000111100001111010001111011001110110010010100110000101100001111"

我无法理解这段代码,无法将其转换为十六进制

res = '{:0>16x}'.format(int(bit_string, 2))

第一步是将数字的二进制表示形式转换为 int,使用 int 方法,基数 2

bit_string = "0000111100001111010001111011001110110010010100110000101100001111"

value = int(bit_string, 2)
print(value)  # 1085164872336083727

然后关于docformat_spec > type部分

'x' : Hex format. Outputs the number in base 16, using lower-case letters for the digits above 9.

所以使用下面的命令得到十六进制输出

res = '{:x}'.format(value)
print(res)  # 0f0f47b3b2530b0f

现在使用 {:0>16x}

进行更多格式化
  • > :强制字段在可用 space
  • 范围内 right-aligned
  • 0 :填充值 0 而不是 space
  • 16 : 填充长度为 16

这不会影响您的值,它的十六进制长度已经是 16,但这里的值较小

res = '{:0>16x}'.format(10)
print(res)  # 000000000000000a

res = '{:0<16x}'.format(123456)
print(res)  # 1e24000000000000