【发布时间】:2011-05-21 02:24:15
【问题描述】:
我正在尝试创建一些需要传输的数据的十六进制表示(具体来说,在 ASN.1 表示法中)。在某些时候,我需要将数据转换为其十六进制表示。由于数据是作为字节序列传输的,因此如果长度为奇数,则必须用 0 填充十六进制表示。
例子:
>>> hex2(3)
'03'
>>> hex2(45)
'2d'
>>> hex2(678)
'02a6'
我们的目标是为hex2 找到一个简单、优雅的实现。
目前我正在使用hex,去掉前两个字符,然后用0 填充字符串,如果它的长度是奇数。但是,我想找到一个更好的解决方案以供将来参考。我查看了str.format,但没有找到任何填充到倍数的东西。
【问题讨论】:
-
我认为这和你能得到的一样好,当然除非标准库中有隐藏的宝石......