Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 30, 2012 22:39:01

protagonist113
Зарегистрирован: 2012-09-29
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Как сложить 2 шестнадцатеричных числа?

Нужно посчитать хеш строки
Алгоритм:
Допустим есть строка: ‘0’

a=hex(ord('0')+1)=hex(48+1)=0x31
b=hex(ord('0'))=hex(48)=0x30

И из aи b надо получить hex чиcло вида 0x3031 и из него int("0x3031)=12337
Каким образом это сделать?

Офлайн

#2 Сен. 30, 2012 23:12:37

Soteric
От:
Зарегистрирован: 2010-09-19
Сообщения: 352
Репутация: +  20  -
Профиль   Отправить e-mail  

Как сложить 2 шестнадцатеричных числа?

домножить b на 0x100 и прибавить a



Офлайн

#3 Сен. 30, 2012 23:33:48

dimy44
От: Евпатория
Зарегистрирован: 2012-04-21
Сообщения: 463
Репутация: +  42  -
Профиль  

Как сложить 2 шестнадцатеричных числа?

res = lambda a: ((ord(a) + 1) << 8) + ord(a)
print res("0")

Офлайн

#4 Окт. 1, 2012 03:16:18

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

Как сложить 2 шестнадцатеричных числа?

dimy44 числа перепутал

>>> s = '0'
>>> h = ord(s) * 0x100 + ord(s) + 1
>>> h
12337
>>>



Офлайн

#5 Окт. 1, 2012 07:52:49

dimy44
От: Евпатория
Зарегистрирован: 2012-04-21
Сообщения: 463
Репутация: +  42  -
Профиль  

Как сложить 2 шестнадцатеричных числа?

Точно. Исправляю свой пример:

res = lambda a: (ord(a) << 8) + ord(a) + 1
print res("0")
>>>
12337
>>>

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version