如何在几行上定义一个长的十六进制文字?

2024-05-19 05:52:34 发布

您现在位置:Python中文网/ 问答频道 /正文

如何在Python中定义一个非常长的hex文本?E、 g

p = 0xB10B8F96 A080E01D DE92DE5E AE5D54EC 52C99FBC FB06A3C6
      9A6A9DCA 52D23B61 6073E286 75A23D18 9838EF1E 2EE652C0
      13ECB4AE A9061123 24975C3C D49B83BF ACCBDD7D 90C4BD70
      98488E9C 219A7372 4EFFD6FA E5644738 FAA31A4F F55BCCC0
      A151AF5F 0DC8B4BD 45BF37DF 365C1A65 E68CFDA7 6D4DA708
      DF1FB2BC 2E4A4371

如果我能保留空格或其他分隔符,那就太好了。在


Tags: 文本定义hexfb06a3c6f55bccc0a151af5faccbdd7da9061123
2条回答

下面是一个尝试,它将其保存为字符串,然后使用ast.literal_eval计算实际数字:

from ast import literal_eval

hex_string_literal = (
     "0xB10B8F96" "A080E01D" "DE92DE5E" "AE5D54EC" "52C99FBC" "FB06A3C6"
       "9A6A9DCA" "52D23B61" "6073E286" "75A23D18" "9838EF1E" "2EE652C0"
       "13ECB4AE" "A9061123" "24975C3C" "D49B83BF" "ACCBDD7D" "90C4BD70"
       "98488E9C" "219A7372" "4EFFD6FA" "E5644738" "FAA31A4F" "F55BCCC0"
       "A151AF5F" "0DC8B4BD" "45BF37DF" "365C1A65" "E68CFDA7" "6D4DA708"
       "DF1FB2BC" "2E4A4371")

p = literal_eval(hex_string_literal)

定义上面的字符串文本使用string literal concatenation。在

编辑

正如下面的注释中的@nneonneo所说,您还可以在上面的示例中使用int(hex_string_literal, 16)或{},这样就不必导入额外的内容。在

p = int(''.join('''
    B10B8F96 A080E01D DE92DE5E AE5D54EC 52C99FBC FB06A3C6
    9A6A9DCA 52D23B61 6073E286 75A23D18 9838EF1E 2EE652C0
    13ECB4AE A9061123 24975C3C D49B83BF ACCBDD7D 90C4BD70
    98488E9C 219A7372 4EFFD6FA E5644738 FAA31A4F F55BCCC0
    A151AF5F 0DC8B4BD 45BF37DF 365C1A65 E68CFDA7 6D4DA708
    DF1FB2BC 2E4A4371
    '''.split()), 16)

您可以使用int(str,16)来转换十六进制。在

相关问题 更多 >

    热门问题