@deus97

Почему я получаю разные значения из bytes при итерации и при высчитывании шестнадцатеричного числа вручную?

Есть такая строка типа bytes (это малая часть всей строки)
data = b'>\x02\xfe\xbf_\xec\xe6\xee\x00R
переводя на бумаге я получаю значения: 2 254 191 236 230 238 и 0
Однако при итерации
for i in range(9):
      print(i data[i])

выводятся значения:
62
2
254
191
95
236
230
238
0

Не могу понять откуда берутся числа 62 и 95 и как оно работает. Помогите пожалуйста
  • Вопрос задан
  • 67 просмотров
Решения вопроса 1
Mike_Ro
@Mike_Ro Куратор тега Python
Python, JS, WordPress, SEO, Bots, Adversting
Вероятно, Вы не учли символы > и _, которые также являются частью Вашей строки bytes. Коды этих символов (62 и 95) в десятичной системе и являются теми числами, которые вызывали у Вас вопросы.

data = b'>\x02\xfe\xbf_\xec\xe6\xee\x00R'

for i in range(len(data)):
    hex_repr = '\\x{:02x}'.format(data[i])
    print(i, data[i], f"({hex_repr})")

# 0 62 (\x3e)
# 1 2 (\x02)
# 2 254 (\xfe)
# 3 191 (\xbf)
# 4 95 (\x5f)
# 5 236 (\xec)
# 6 230 (\xe6)
# 7 238 (\xee)
# 8 0 (\x00)
# 9 82 (\x52)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы