【问题标题】:how to convert a string into hex with the same printed string如何将字符串转换为具有相同打印字符串的十六进制
【发布时间】:2020-06-23 10:59:31
【问题描述】:

如何将字符串x='0x67c31080115dDfeBa0474B3893b2caB1d567438f' 转换为十六进制为x=0x67c31080115dDfeBa0474B3893b2caB1d567438f

我想使用相同的十六进制值,但不是字符串格式

换句话说,如何将 x 视为十六进制值而不是字符串类型(没有 ' ' )

谢谢

【问题讨论】:

  • 这能回答你的问题吗? how to parse hex or decimal int in Python
  • 你到底是什么东东,要求你的号码在内部表示为十六进制值? Python 以 10 为基数表示所有数字,但无论数字是八进制、十进制还是十六进制,数字运算都会产生相同的输出。

标签: python string hex


【解决方案1】:

您可以使用ast.literal_eval

import ast

x='0x67c31080115dDfeBa0474B3893b2caB1d567438f'

hex_val = hex(ast.literal_eval(x))
print(hex_val)

【讨论】:

    【解决方案2】:

    没有“十六进制值”这样的东西。 0x67c31080115dDfeBa0474B3893b2caB1d567438f 属于类型 int。您可以将字符串转换为int,只需:

    x = int(x, 16)
    

    但是,如果您想将其打印为十六进制,请使用:

    print(hex(x))
    

    print("{:x}".format(x))
    

    (第一个在字符串的开头添加“0x”,另一个没有)。

    【讨论】:

      猜你喜欢
      • 2013-02-07
      • 1970-01-01
      • 2014-12-04
      • 1970-01-01
      • 2019-07-27
      • 1970-01-01
      • 1970-01-01
      • 2018-01-31
      相关资源
      最近更新 更多