首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用binascii.unhexlify的奇长字符串错误

使用binascii.unhexlify的奇长字符串错误
EN

Stack Overflow用户
提问于 2016-12-21 13:46:51
回答 2查看 15.5K关注 0票数 5

我试图将一个ASCII字符串来回转换为它的二进制表示形式,如下所示。

代码语言:javascript
复制
s=chr(0)*15 + chr(0x01)
bst = bin(int(binascii.hexlify(s), 16))
n = int(bst, 2)
binascii.unhexlify('%x' % n) 

但是,我在最后得到了下面的错误,这对我来说没有多大意义。

1 binascii.unhexlify('%x‘% n) TypeError:奇数长度字符串

有什么问题,我该怎么解决呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-12-21 13:56:17

使用python控制台:

代码语言:javascript
复制
>>> help(binascii.unhexlify)

unhexlify(...)
    a2b_hex(hexstr) -> s; Binary data of hexadecimal representation.

    hexstr must contain an even number of hex digits (upper or lower case).
    This function is also available as "unhexlify()"

所以这个错误是一致的。您需要做的是填充'0'以获得偶数:

代码语言:javascript
复制
>>> binascii.unhexlify('0%x' % n)
'\x01'
票数 4
EN

Stack Overflow用户

发布于 2020-01-02 12:03:31

代码语言:javascript
复制
                n = int(wer, 2)

                qqwslenf=len(wer)
                qqwslenf=(qqwslenf/8)*2
                qqwslenf=str(qqwslenf)
                qqwslenf="%0"+qqwslenf+"x"


                jlz=binascii.unhexlify(qqwslenf % n)
                #we convert from binary to ASCII exactly size of need by half bytes.
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41264280

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档