Member 11520335 Ответов: 1

Питон. Я хочу преобразовать значение в шестнадцатеричное значение


Я использую нижеприведенную функцию в Python

str(длина).zfill(2).decode('hex')


Am exepcting Output as '\x0A'

Но значение, которое я получаю, - это "\x10"

Что не так с вышеуказанной программой

Что я уже пробовал:

Я попробовал использовать hex(длина)

Но это дает мне "0xa", что неправильно

CPallini

Непонятно, чего вы хотите добиться. Каково ваше входное значение?

Member 11520335

Входное значение равно 10. Я имею в виду длину

1 Ответов

Рейтинг:
2

CPallini

то string.decode('hex') метод идет в обратном направлении. Вы должны использовать функция hex[^] вместо. Однако есть одно предостережение: чтобы обнулить его, вы должны удалить (и восстановить его впоследствии) ведущий элемент. '0x'. Пробовать

length=10;
s = '0x' + hex(length)[2:].zfill(2)
print(s)



[обновление]
Оба
length=10;
s = '\\x' + hex(length)[2:].upper().zfill(2)
print(s)
и (возможно, более ясное)
length=10
s="\\x{0:02X}".format(length)
print(s)

производить
\x0A
[/обновление]


Member 11520335

Но это приводит к тому, что
'0x0a'

Но мне нужно как ниже
'\x0A'

CPallini

Я обновил свое решение, взгляните на него сейчас.

Member 11520335

Даже я попробовал ваше первое обновленное решение. Это приводит к тому, что

'\\x0A'

Второе решение дает мне тот же результат, что и provious

Это должно быть '\x0A'

CPallini

Вы ошибаетесь:
https://tio.run/##K6gsycjPM/r/Pyc1L70kw9bQgKvYVikmpqLawMrAKKJWSS8tvyg3sUQDIq/JVVCUmVeiUaz5/z8A

Member 11520335

может быть, онлайн-репетитор дает правильные значения .
Но я запускаю этот код с jetBrains Pycharm в качестве IDE
Python Версия 3.8.0
Я все еще получаю неверное значение
'\\x0A'

Member 11520335

может быть, онлайн-репетитор дает правильные значения .
Но я запускаю этот код с jetBrains Pycharm в качестве IDE
Python Версия 3.8.0
Я все еще получаю неверное значение
'\\x0A'

CPallini

Вы не получаете "неправильное" значение. Вместо этого ваша IDE также показывает escape-символ ('\').