"\x81"和0x81之间的区别



我是Python的新手,正在尝试通过PyUSB从USB设备读取一些值。好吧,它现在可以工作了,但我遇到了一些麻烦:在从设备读取数据时,PyUSB需要一个端点来读取数据。此端点通过十六进制值标识。如果我读的数据像。。。

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

我得到一个错误"AttributeError:'NoneType'对象没有属性'bmAttributes'"。如果我读的数据像。。。

dev.read(0x81, ...)

它是有效的。

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

:-)

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

0x81是一个以16为底写的整数,其值为129。您也可以通过简单地编写129来获得它。

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

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

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

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

相关内容

  • 没有找到相关文章

最新更新