Mam pewne trudności z zamianą heksa na int/char (najlepiej char). Za pośrednictwem strony internetowej; http://home2.paulschou.net/tools/xlate/ Wprowadzam heks C0A80026 do szesnastkowej skrzynki, w polu DEC/CHAR poprawnie wyprowadza IP, którego oczekiwałem.Python - Konwertowanie hexa na INT/CHAR
Te dane są pobierane z zewnętrznej bazy danych i nie mam świadomości, w jaki sposób są zapisywane, więc wszystko, z czym muszę pracować, to sam łańcuch szesnastkowy.
Próbowałem użyć funkcji binascii.unhexlify
, aby sprawdzić, czy mogę ją odkodować, ale obawiam się, że mogę nie mieć wystarczająco dobrego zrozumienia heksu, aby docenić to, co robię.
Próby drukowania przy użyciu odlewu int() również nie przyniosły wymaganych wyników. Potrzebuję jakiegoś sposobu przekonwertowania z tego ciągu szesnastkowego (lub jednego podobnego) do oryginalnego adresu IP.
AKTUALIZACJA: Dla każdego, kto natknie się na to w przyszłości, nieco zmodyfikowałem poniższą odpowiedź, aby zapewnić dokładny wydruk jako adres IP przy użyciu;
dec_output = str(int(hex_input[0:2], 16)) + "." + str(int(hex_input[2:4], 16)) + "." + str(int(hex_input[4:6], 16)) + "." + str(int(hex_input[6:8], 16))
możliwe duplikat [Convert ciąg szesnastkowy do int w Pythonie] (http://stackoverflow.com/questions/ 209513/convert-hex-string-to-int-in-python) –
To rozwiązanie nie działa z moim problemem – Draineh
Proszę wyjaśnić dokładnie, w jaki sposób pytanie o duplikowanie nie jest duplikatem. Szczegóły mają znaczenie. "nie działa z moim problemem" jest zbyt niejasne, by cokolwiek znaczyć. –