'\ x81'和0x81之间的差异

时间:2012-02-17 22:43:22

标签: python types pyusb

我是Python新手,我正试图通过PyUSB从USB设备读取一些值。嗯,它现在有效,但我遇到了一些麻烦:从设备读取数据时,PyUSB需要一个端点来读取数据。此端点通过十六进制值标识。如果我读取数据......

dev.read('\x81', ...)

...我收到错误“AttributeError:'NoneType'对象没有属性'bmAttributes'”。如果我读取数据......

dev.read(0x81, ...)

......它有效。

所以我的简单问题是:0x81和'\ x81'之间有什么区别?

: - )

4 个答案:

答案 0 :(得分:7)

在Python 2.x中,'\x81'是一个字节字符串,由一个值为129的字节组成。您也可以通过调用chr(129)来获取它。

0x81是一个用16进行写的整数,值为129.你也可以通过简单地写129来获得它。

答案 1 :(得分:2)

\ x81对应于具有81十六进制代码的unicode字符,0x81是有效的十六进制值。

答案 2 :(得分:2)

第一个是强制进入第一个字符位置的特定十六进制值的字符串,第二个是整数。

显然,API调用肯定需要一个整数。

答案 3 :(得分:2)

0x81发送一个它要求的十六进制数字,而'\ x81'发送一串字符。这就是为什么第二个有效,希望有所帮助,实际上是你所要求的:)