转换为十六进制
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
我有这个二进制字符串
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
而不是 space16
: 填充长度为 16
这不会影响您的值,它的十六进制长度已经是 16,但这里的值较小
res = '{:0>16x}'.format(10)
print(res) # 000000000000000a
res = '{:0<16x}'.format(123456)
print(res) # 1e24000000000000