转换为十六进制

发布于 2025-01-11 20:07:52 字数 224 浏览 0 评论 0原文

我有这个二进制字符串,

bit_string = "0000111100001111010001111011001110110010010100110000101100001111"

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

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

I have this binary string

bit_string = "0000111100001111010001111011001110110010010100110000101100001111"

I can't understand this code snippet to convert it to hexadecimal

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

剑心龙吟 2025-01-18 20:07:52

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

bit_string = "0000111100001111010001111011001110110010010100110000101100001111"

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

然后关于 doc format_spec >输入部分

'x':十六进制格式。输出以 16 为基数的数字,9 以上的数字使用小写字母。

因此,使用以下命令获取十六进制输出

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

现在使用 {:0>16x}

  • > 进行更多格式化code> :强制字段在可用空间内右对齐
  • 0 :填充值 0 而不是空格
  • 16 :填充于长度16

那个不会影响你的值,它的十六进制长度已经是 16,但这里的值更小

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

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

The first step is converting the binary representation of your number into an int, use the int method, with base 2

bit_string = "0000111100001111010001111011001110110010010100110000101100001111"

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

Then regarding the doc format_spec > type part

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

So use the following to get hex output

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

Now more formatting with {:0>16x}

  • > : Forces the field to be right-aligned within the available space
  • 0 : pad with the value 0 and not space
  • 16 : pad at length 16

That doesn't affect your value, which is already of length 16 in hex, but here with smaller values

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

res = '{:0<16x}'.format(123456)
print(res)  # 1e24000000000000
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文