Шестнадцатеричные числа в питоне

1

Я не знаю python, и я переношу библиотеку на С#, я столкнулся со следующими строками кода, которые используются в некоторых операциях ввода-вывода, но я не уверен, что это такое, я предполагаю, что он шестнадцатеричный, но я не знаю, почему он внутри строки, ни то, что делают обратные косые черты?

    sep1 = '\x04H\xfe\x13' # record separator
    sep2 = '\x00\xdd\x01\x0fT\x02\x00\x00\x01'  # record separator
Теги:

4 ответа

0
Лучший ответ

Обратная косая черта - это escape-символы. Они позволяют вставлять специальные символы (IE кавычки) внутри строки. \xNN является шестнадцатеричным, как вы говорите.

Похоже, что они используют строку вместо массива для меня. Я не совсем уверен, почему кто-то сделает это... но о хорошо

Я не знаком с С#, но в C, sep1 похож на char[] {0x04H, 0xfe, 0x13} (с дополнительным 0 в конце, если это строка с нулевым завершением)

5

Это escape-последовательности. В Python \xNN внутри (не сырой) строки обрабатывается как символ 0xNN.

  • 0
    Спасибо за ваш ответ.
0

Как утверждали другие, он избежал символов, которые на самом деле не могут быть представлены в виде символов US ASCII. Почему вы это делаете?

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

Некоторые языки не поддерживают собственный тип для байтов, и тогда у нас есть проблема. Как мы можем писать и отправлять последовательность байтов, когда мы не можем иметь их в переменной?

Язык C использует символы и строки символов для хранения этих байтов. Так что у вас нет строки. Подумайте об этом как о последовательности байтов (хранящихся в строке).

"Строка" может использоваться как обычная, т.е. она может быть отправлена ​​на устройство ввода-вывода так же, как любой другой символ может быть отправлен, и, как правило, с теми же функциями (Write, Put, Print,...)

0

Такая же escape-последовательность работает на большинстве языков. Вам просто нужно использовать правильные строковые кавычки, в С#, что двойная кавычка (").

Ещё вопросы

Сообщество Overcoder
Наверх
Меню