id: Гость   вход   регистрация
текущее время 09:56 28/05/2020
Автор темы: Гость, тема открыта 12/01/2004 22:53 Печать
http://www.pgpru.com/Форум/Криптография/АлгоритмСложенияСтрок
создать
просмотр
ссылки

Алгоритм сложения строк


Вопрос скорее всего глупый, но я не могу разобраться, вот вырезка из задания:


Алгоритм сложения.
Требуется написать алгоритм сложения двух чисел в 256-ричной системе счисления, то есть сложение двух строк, как чисел. Алгоритм повторяет наши привычные действия при сложении двух чисел на листе бумаги – «сложение столбиком». Вы при этом записываете числа одно под другим, причем так, чтобы они были выровнены по правому краю. Затем складываете поразрядно. Результат сложения двух разрядов может оказаться больше основания системы счисления (например, 10). Тогда под складываемыми разрядами пишется остаток от деления на основание системы счисления, а единица «переносится» в старший разряд, то есть добаляется при суммировании старших разрядов.
Попытайтесь запрограммировать этот алгоритм. Небольшие трудности Вас ожидают в случае, если длина строк разная. Кроме того, результат сложения может оказаться длиннее самой длинной исходной строки!
Так как мы складываем числа в 256-ричной системе счисления, то Вам надо считать остаток от деления суммы на 256 (операция mod) – это будет результат сложения. Надо считать также «перенос», он равен частному от деления нацело (операция \) суммы на 256.
Вы догадались, что по символу Вам требуется получить число – код по таблице ASCII.

Так вот, если я хочу сложить допустим (англ.) AA и (рус) яя,
то так как код "А"=65, а "я"=255, как мне представить слагаемые? :?:


006565
+
255255


так??


065065

+

255255

так??


или вобще как-то по-другому?

 
Комментарии
— SATtva (13/01/2004 03:49)   профиль/связь   <#>
комментариев: 11545   документов: 1036   редакций: 4094
Вопрос несколько не по тематике форума, но всё же...

Согласно моему пониманию процесса, это похоже на XOR печатных элементов из таблицы ASCII. Если так, необходимо складывать каждую пару элементов по модулю 256. А раз требуется учитывать и "перенос", то второй предложенный тобой вариант решения ближе к истине.
— Wizzard (13/01/2004 10:25)   профиль/связь   <#>
комментариев: 31   документов: 8   редакций: 0
А может быть лучше будет складывать отдельно посимвольно? В твоем случае это будет примерно так: АА+яя
065+
255
Результат записываем в одну переменную а еденицу для переноса в другую, следущий шаг:
еденица для переноса+
065+
255
и опять все повторяется, и так до тех пор пока не кончатся еденицы для переноса и подставляемые числа из строки.
Ваша оценка документа [показать результаты]
-3-2-1 0+1+2+3