В Python (3) по крайней мере, если двоичное значение имеет представление ASCII, оно отображается вместо шестнадцатеричного значения. Например, двоичное значение 67
который является ASCII-C
этого шоу следующим образом:Показать шестнадцатеричное значение для всех байтов, даже если присутствуют символы ASCII
bytes([67]) # b'C'
В то время как для двоичных значений без ASCII представлений, они показаны в шестнадцатеричном формате. И.Е.
b'\x0f'
Есть ли способ заставить Python, чтобы показать двоичные значения в их двоичных шестнадцатиричной форме (если это то, что она называется), даже если есть ASCII представление?
Редактировать: Под этим я подразумеваю, что-то, что начинается с b'\x'
,. Это облегчило бы отладку, если вы ищете конкретные байты, которые будут напечатаны, например.
Благодаря
@BrenBarn Я не думаю, что это дубликат этого вопроса. Этот вопрос задает вопрос о том, как получить шестнадцатеричное значение как репрез (или какое-то другое строковое преобразование), в то время как другой вопрос/ответ в основном предполагает разницу и решает их эквивалентность. – user2864740
@ user2864740: Ответ, однако, включает в себя способ отображения шестнадцатеричных значений всех байтов. – BrenBarn
Я видел этот вопрос, но думал о том же. В этом вопросе принятый ответ хорошо объясняет, что они одинаковы и почему они печатаются по-разному, но не объясняют, как существенно «отключить» форматирование ASCII в редакторе. Я знаю, что они одинаковые, но во время отладки сложнее постоянно конвертировать. Даже использование '.encode ('hex')' в качестве упомянутого ответа не форматирует символы одинаково (т.е. префикс их с помощью '\ x' – Startec