Автор: другие произведения.

Как на Python прочитать hex файлы и сложить значения?

Журнал "Самиздат": [Регистрация] [Найти] [Рейтинги] [Обсуждения] [Новинки] [Обзоры] [Помощь]
Peклaмa:
Конкурс фантастических романов "Утро. ХХII век"
Конкурсы романов на Author.Today

Летние Истории на ПродаМане
Peклaмa
 Ваша оценка:

Задача: дано два текстовых файла с hex-значениями в виде 0x23 и требуется прочитать их и сложить.

Решение:

with open('one.txt', 'r') as f:
    file1 = f.read().split()

with open('two.txt', 'r') as f:
    file2 = f.read().split()

sum_list = [int(x, 16) + int(y, 16) for x, y in zip(file1, file2)]

for elem in sum_list:
    print(hex(elem), end=" ")

Основная турдность заключается в том, что данные из файла читаются как строки, в то время как это шестнадцатеричные значения. Как привести строку hex формата в число hex формата?

Скажу сразу, что конвертировать строку в hex нельзя любыми средствами, поскольку метод hex() работает только с числами. Если прочитать строку как бирное число, то при конвертации в hex он перекодирует каждый символ двумя символами и получится не то, что мы искали.

Выход - прочитать два числа как int в hex системе счисления (по основанию 16). Затем сложить вместе два списка и уже потом привести каждый элемент к hex виду.


 Ваша оценка:

Популярное на LitNet.com Д.Куликов "Пчелиный Рой. Уплаченный долг"(Постапокалипсис) А.Черчень "Дом на двоих"(Любовное фэнтези) Ю.Резник "Семь"(Антиутопия) М.Тайгер "Выжившие"(Постапокалипсис) М.Олав "Мгновения до бури. Выбор Леди"(Боевое фэнтези) М.Атаманов "Искажающие реальность"(Боевая фантастика) К.Юраш "Процент человечности"(Антиутопия) В.Соколов "Мажор 4: Спецназ навсегда"(Боевик) А.Емельянов "Мир Карика 9. Скрытая сила"(ЛитРПГ) М.Атаманов "Искажающие реальность-5"(ЛитРПГ)
Связаться с программистом сайта.

Новые книги авторов СИ, вышедшие из печати:
Д.Иванов "Волею богов" С.Бакшеев "В живых не оставлять" В.Алферов "Мгла над миром" В.Неклюдов "Спираль Фибоначчи.Вектор силы"

Как попасть в этoт список
Сайт - "Художники" .. || .. Доска об'явлений "Книги"