0263. Шестнадцатеричный сумматор

Имя входного файла: hex.in
Имя выходного файла: hex.out
Ограничение по времени: 2 s
Ограничение по памяти: 64 megabytes

В хозяйстве у программиста, особенно у системного, всегда есть непустое (даже очень непустое) множество полезных утилит - эдаких маленьких программок, выполняющих какие-то непонятные функции. Так вот, одной из таких программок может служить шестнадцатеричный сумматор. Зачем он нужен? А очень просто: при написании программ на ассемблере приходится очень часто работать с шестнадцатеричными числами, так как эта система счисления наиболее часто используется при записи значений регистров, адресов оперативной памяти и прочих подобных вещей. Так вот, Вам дан файл, содержащий шестнадцатеричные числа. Необходимо их все сложить и вывести в выходной файл. Тоже в шестнадцатеричной системе счисления.

Формат входного файла

Входной файл содержит шестнадцатеричные числа, разделенные чем угодно. Чем угодно - в данном случае означает, что между числами могут стоять абсолютно любые символы, но только те, которые не входят в запись 16-ичного числа. Будем считать, что 16-ичные числа записываются цифрами от 0 до 9 и заглавными латинскими буквами от A до F. Так, строка "AaB" содержит 2 числа A и B (10 и 11 соответственно). Гарантируется, что каждое число во входном файле (а они все положительны), помещается в стандартный 32-х битный целый тип. Их сумма также помещается в 32-х битный целый тип.

Формат выходного файла

Одна строка - сумма чисел из входного файла, записанная в 16-ичной системе.

Пример:

hex.inhex.out
mov ax, 13 int 10 db C4 db C4 db 0 1AB


Источник: Первенство первокурсника ПетрГУ. Осень 2006.

Обсудить       Отправить решение