Форум сайта python.su
Напишите, пожалуйста, функцию, которая бы принимала десятичное число(eg 17428), конвертировало в шестнадцатиричную систему (4414), а затем обращало его по байтам (1444)
Офлайн
Мне ещё нужно это число по байтам в файл запихать, полагаю, это будет считывание объекта bytearray или ещё чего-нибудь.
Офлайн
Без функции как-то так должно выглядеть, но почему-то не все числа помещаются в байтэррэй. Число - uint32
p = bytearray(b"") d = 999595 i = 0 while i <= 4: a = d % (256 ** (i + 1)) c = 256 ** (i) b = a // c print(b) p.append(b) i += 1 print(p)
Офлайн
К вопросу о том почему никто не отвечает.
Полагаю что большинство считает что вы хотите чтобы вам дали готовое решение, но сами палец о палец не ударили чтобы его получить. Приведенный код взяли на другом форуме или у братьев по несчастью.
Решение реально размером в три строчки, и пишется на раз если прочитать учебник.
Офлайн
>>> '%x' % 17428 '4414' >>>
>>> bytes(reversed(bytes.fromhex('%x' % 17428))).hex() '1444' >>>
Отредактировано py.user.next (Сен. 8, 2017 16:59:16)
Офлайн
Этот код писал я. Потом добавил не в байтэррэй, а в обычный массив. Мне не нужно готовое решение, а нужно было объяснить, почему не работает байтэррэй. Раз этого никто сделать не может, тогда ладно.
Отредактировано JediSkywalker (Сен. 12, 2017 18:28:17)
Офлайн