#python
#python
Вопрос:
Я использую метод int.to_bytes в Python для преобразования целочисленных значений в байты.
При определенных значениях это, похоже, не удается. Прилагается вывод из консоли Python:
value = 2050
value.to_bytes(2, 'big')
>>> b'x08x02'
value = 2082
value.to_bytes(2, 'big')
>>> b'x08"'
При значении 2050
преобразование кажется правильным. Но когда значение равно 2082
, по какой-то причине извлекается только верхний байт. Есть какая-либо причина, почему это происходит?
Комментарии:
1. К сожалению, понял это сейчас…
2. Но это именно то, как
bytes
реализованы str и repr. Это правильные значения и работает. Просто положите немного ленты на монитор, чтобы вам не приходилось ее видеть.3. Ха-ха, попробовал бы.
Ответ №1:
Он извлекает все байты. Попробуйте
value = 2082
x = value.to_bytes(2, 'big')
print(x[0]) # Output: 8
print(x[1]) # Output: 34
При преобразовании в строку байт 34
преобразуется в ASCII "
, что вы и видите.