Уведомления

Группа в Telegram: присоединиться | Jabber-конференция сообщества: pythonua@conference.jabber.ru

#1 Сен. 7, 2017 22:34:28

JediSkywalker
Зарегистрирован: 2017-07-09
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Десятичное число в шестнадцатиричное в обратных байтах

Напишите, пожалуйста, функцию, которая бы принимала десятичное число(eg 17428), конвертировало в шестнадцатиричную систему (4414), а затем обращало его по байтам (1444)

Офлайн

#2 Сен. 7, 2017 23:23:00

JediSkywalker
Зарегистрирован: 2017-07-09
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Десятичное число в шестнадцатиричное в обратных байтах

Мне ещё нужно это число по байтам в файл запихать, полагаю, это будет считывание объекта bytearray или ещё чего-нибудь.

Офлайн

#3 Сен. 7, 2017 23:28:44

JediSkywalker
Зарегистрирован: 2017-07-09
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Десятичное число в шестнадцатиричное в обратных байтах

Без функции как-то так должно выглядеть, но почему-то не все числа помещаются в байтэррэй. Число - 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)

Офлайн

#4 Сен. 8, 2017 07:29:40

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 2886
Репутация: +  152  -
Профиль   Отправить e-mail  

Десятичное число в шестнадцатиричное в обратных байтах

К вопросу о том почему никто не отвечает.
Полагаю что большинство считает что вы хотите чтобы вам дали готовое решение, но сами палец о палец не ударили чтобы его получить. Приведенный код взяли на другом форуме или у братьев по несчастью.

Решение реально размером в три строчки, и пишется на раз если прочитать учебник.



Офлайн

#5 Сен. 8, 2017 16:56:03

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 5270
Репутация: +  484  -
Профиль   Отправить e-mail  

Десятичное число в шестнадцатиричное в обратных байтах

  
>>> '%x' % 17428
'4414'
>>>

  
>>> bytes(reversed(bytes.fromhex('%x' % 17428))).hex()
'1444'
>>>



Отредактировано py.user.next (Сен. 8, 2017 16:59:16)

Офлайн

#6 Сен. 12, 2017 17:51:26

JediSkywalker
Зарегистрирован: 2017-07-09
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Десятичное число в шестнадцатиричное в обратных байтах

Этот код писал я. Потом добавил не в байтэррэй, а в обычный массив. Мне не нужно готовое решение, а нужно было объяснить, почему не работает байтэррэй. Раз этого никто сделать не может, тогда ладно.

Отредактировано JediSkywalker (Сен. 12, 2017 18:28:17)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version