【问题标题】:Loss of size of numbers when processing in hex format以十六进制格式处理时数字大小丢失
【发布时间】:2021-12-02 07:11:13
【问题描述】:

在处理十六进制数字时遇到问题。 从文件中运行str (hex ()) 时,0x... 后面的零会消失。

入口处:

0x0000000000000000000000000000000000000000000000000000000000000001f01f80f12f7cf16638f7a8074d46fe2f421a73432b1441a01ed3dd883c68acad
0x00000000000000000000000000000000000000000000000000000000000000029a799033fc54073346f870c15c9836f6b2e9eccdb85f09d29a8ddc90dc3a8ef1
0x00000000000000000000000000000000000000000000000000000000000000033e561483073e429ec25c09c99de2a81d5a34a539ad2dbb688af6b6f5f24936a4

退出时:

0x1f01f80f12f7cf16638f7a8074d46fe2f421a73432b1441a01ed3dd883c68acad
0x29a799033fc54073346f870c15c9836f6b2e9eccdb85f09d29a8ddc90dc3a8ef1
0x33e561483073e429ec25c09c99de2a81d5a34a539ad2dbb688af6b6f5f24936a4

代码:

   with open("data.txt", "r") as file:
        for line in file:
            L = int(line, 0)
            R = str(hex(L))
            print(R)

代码中需要修复什么?我需要一种大小的数字并且不丢失零。

【问题讨论】:

  • 你能提供你的代码吗?
  • 您可能正在寻找字符串格式来填充值
  • @0dminnimda 写了代码
  • hex(L) 返回一个字符串,所以str(hex(L)) 是多余的。
  • @ti7 我需要它是一种尺寸

标签: python python-3.x list numbers hex


【解决方案1】:

使用字符串格式:

  • # 表示将 0x 放在前面表示十六进制数字。
  • 0130 表示字段长度为 130 个字符,前导零表示用零填充。
  • x 表示十六进制(小写 a-f)。
line = '0x0000000000000000000000000000000000000000000000000000000000000001f01f80f12f7cf16638f7a8074d46fe2f421a73432b1441a01ed3dd883c68acad'
print(line)  # as read from file
integer = int(line, 0)
formatted = f'{integer:#0130x}'
print(formatted)
print(formatted == line) # check that original and re-formatted are the same

输出:

0x0000000000000000000000000000000000000000000000000000000000000001f01f80f12f7cf16638f7a8074d46fe2f421a73432b1441a01ed3dd883c68acad
0x0000000000000000000000000000000000000000000000000000000000000001f01f80f12f7cf16638f7a8074d46fe2f421a73432b1441a01ed3dd883c68acad
True

【讨论】:

    猜你喜欢
    • 2013-10-22
    • 1970-01-01
    • 2010-12-09
    • 2016-01-24
    • 2020-03-03
    • 1970-01-01
    • 2018-12-09
    • 2021-11-20
    • 2012-08-15
    相关资源
    最近更新 更多