Я новичок в Python и программирования,все возможные комбинации для HEX значения из заданного набора символов
Ищу кода или образец кода, который может иметь заранее определенный набор шестнадцатеричные значения и который может найти 3 используемых значения внутри, чтобы генерировать определенное значение.
позволяет сказать, что он имеет значение: 0x50158A51
это 4 байта (32 бит) шестнадцатеричное значение
теперь мне нужно найти значение, которые, когда добавляются или вычитаются (из предоставленного набора) закончится этим результатом.
, например:
0x75612171 + 0x75612171 + 0x6553476F = 0x50158A51
- уведомление о том, что значения добавляются все из разрешенного набора
Просто чтобы быть ясно, у меня есть ограниченные символы комплект
который есть:
\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13
\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f\x20\x21\x22\x23\x24\x25\x26
\x27\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39
\x3a\x3b\x3c\x3d\x3e\x3f\x40\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a\x4b\x4c
\x4d\x4e\x4f\x50\x51\x52\x53\x54\x55\x56\x57\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f
\x60\x61\x62\x63\x64\x65\x66\x67\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f\x70\x71\x72
\x73\x74\x75\x76\x77\x78\x79\x7a\x7b\x7c\x7d\x7e\x7f\x80\x81\x82\x83\x84\x85
\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98
\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab
\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe
\xbf\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0\xd1
\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf\xe0\xe1\xe2\xe3\xe4
\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7
\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff
я использовал простой код для вычисления 3 значения:
#!/usr/bin/python
hex1 = 0x55555521
hex2 = 0x55555421
hex3 = 0x6D556F49
calc = hex1 + hex2 + hex3
print hex(calc)
который даст результат:
[email protected]:~# ./calc2.py
0x150158a51
мне нужно некоторые как обратный процесс ответа путем размещения отклонения от мой позволил установить в переменные
, например:
укладки 4 байта шестнадцатеричных значений из набора в переменные
try:
hex1 = placing 4bytes from allowed set
hex2 = placing 4bytes from allowed set
hex3 = placing 4bytes from allowed set
if result (hex1+hex2+hex3) = 0x150158a51
then
print "values used for this results are: hex1 hex2 hex3"
Благодарим вас заблаговременно.
Возможно, вы захотите отметить это как домашнюю работу (это звучит так) – Uri
Описание проблемы непонятно. Шары не существуют в python, кроме как элементов строк, которые нельзя вычесть. Более того, ваша математика в примере ошибочна. 'hex (0x7612171 + 0x75612171 + 0x6553476F) == '0xe2158a51L''. Можете ли вы объяснить, что вы на самом деле пытаетесь сделать? Кроме того, если вы можете создать код python, который будет представлять ваши лучшие усилия, чтобы делать то, что вы описали, это также поможет. – jcdyer
@jcd Пример верен, если вы отбрасываете биты более высокого порядка и рассматриваете их как неподписанные значения. См., Например, http://www.wolframalpha.com/input/?i=0x75612171+%2B+0x75612171+%2B+0x6553476F (обратите внимание на переполнение). –