【问题标题】:Python Print Hex variablePython 打印十六进制变量
【发布时间】:2020-07-01 08:26:57
【问题描述】:

我有要打印为十六进制的十六进制变量

data = '\x99\x02'
print (data)

结果是:

我要python打印0x9902

感谢您的帮助

【问题讨论】:

  • '0x' + ''.join('{:02x}'.format(ord(char)) for char in data)
  • 请注意'\x99\x02' 是一个字符串。如果要存储数据,请使用 b'\x99\x02' 中的字节。

标签: python hex


【解决方案1】:

请检查这个。

data = r'\x99\x02'

a, b = [ x for x in data.split(r'\x') if x]

d = int(a+b, base=16)
print('%#x'%d)

【讨论】:

    【解决方案2】:

    您必须将每个字符转换为其数字 - ord(char) - 并将每个数字转换为十六进制值 - '{:02x}'.format() - 并将这些值连接到字符串。并添加字符串'0x'

    data = '\x99\x02'
    
    print('0x' + ''.join('{:02x}'.format(ord(char)) for char in data))
    

    编辑:相同但首先使用string 转换为bytes encode('raw_unicode_escape')

    data = '\x99\x02'
    
    print('0x' + ''.join('{:02x}'.format(code) for code in data.encode('raw_unicode_escape')))
    

    如果你已经有字节,那么你不必编码()

    data = b'\x99\x02'
    
    print('0x' + ''.join('{:02x}'.format(code) for code in data))
    

    顺便说一句:类似的方法你可以使用{:08b}转换成二进制

    data = '\x99\x02'
    
    print(''.join('{:08b}'.format(code) for code in data.encode('raw_unicode_escape')))
    

    【讨论】:

      猜你喜欢
      • 2013-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-14
      • 1970-01-01
      • 1970-01-01
      • 2020-05-14
      相关资源
      最近更新 更多