【问题标题】:Doing hex in python to a full byte在python中执行十六进制到一个完整的字节
【发布时间】:2019-10-26 06:01:35
【问题描述】:

有没有办法让python在格式化十六进制时打印偶数个字节?例如:

>>> hex(12)
'0xc'
>>> f'{12:#x}'
'0xc'
>>> f'{12:#X}'
'0XC'
>>> f'{12:X}'
'C'
>>> f'{12:x}'
'c'

另外,python 是否有一个格式可以在有多个字节时分隔字节?例如:

>>> hex(1000)
'0x3e8' # 0e e8

或者我需要为此创建自己的格式化程序吗?

【问题讨论】:

    标签: python python-3.x hex


    【解决方案1】:

    您可以使用格式说明符格式化字符串中固定长度的十六进制值...

    • 0 - 用 0 填充
    • 4 - 位数
    • x - 十六进制值

    像这样:

     '{:04x}'.format(12)
    

    返回:

    '000c'
    

    AFAIK 你需要有一个自定义格式函数来按位置分组。也许是这样的:

    hex_value = '0123456789abcdef'
    ' '.join(hex_value[i: i + 2] for i in range(0, len(hex_value), 2))
    

    哪个会返回:

    '01 23 45 67 89 ab cd ef'
    

    【讨论】:

      猜你喜欢
      • 2015-08-08
      • 2013-10-08
      • 2017-09-13
      • 2023-03-14
      • 2022-12-12
      • 1970-01-01
      • 2013-04-28
      • 1970-01-01
      • 2018-03-21
      相关资源
      最近更新 更多