Вопрос

Я новичок в Python и пытаюсь прочитать некоторые значения с USB-устройства через PyUSB.Что ж, сейчас это работает, но я столкнулся с некоторыми проблемами: при чтении данных с устройства PyUSB нуждается в конечной точке для чтения данных.Эта конечная точка определяется шестнадцатеричным значением.Если я читаю данные вроде ...

родовое слово

... Я получаю сообщение об ошибке «AttributeError: объект 'NoneType' не имеет атрибута 'bmAttributes'».Если я читаю данные вроде ...

родовое слово

... работает.

У меня простой вопрос: в чем разница между 0x81 и '\ x81'?

:-)

Это было полезно?

Решение

В Python 2.x '\x81' представляет собой строку байтов, состоящую из одного байта со значением 129. Вы также можете получить его, вызвав chr(129).

0x81 - это целое число, записанное по основанию 16, со значением 129. Вы также можете получить его, просто написав код 129.

Другие советы

\ x81 соответствуют символам юникода: один с шестнадцатеричным кодом 81, 0x81 - допустимое шестнадцатеричное значение.

Первая - это строка с определенным шестнадцатеричным значением, помещенным в первую позицию символа, вторая - целое число.

Очевидно, этот вызов API определенно ожидает целое число.

0x81 отправляет запрашиваемое шестнадцатеричное число, а '\ x81' отправляет строку символов.Вот почему второй работает, надеюсь, это поможет, и это действительно то, о чем вы спрашивали :)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top