Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 5 799

/ вопрос открыт /

Доброго времени суток, уважаемые эксперты!

напишите, пожалуйста, функцию чтобы для ASCII строки, например, '12345', рассчитать через XOR контрольную сумму hex-представления элементов строки (31^32^33^34^35 = ..).

AlexMPEI Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: AlexMPEI (статус: 1-ый класс)
Вопрос отправлен: 6 декабря 2011, 20:08
Состояние вопроса: открыт, ответов: 1.

Ответ #1. Отвечает эксперт: min@y™

Ой, да как два пальца об асфальт!

function XorString(const S: string): Byte;
var
  Index: Integer;
begin
  Result:= 0;
  for Index:= 1 to Length(S) do
    Result:= Result xor Byte(S[Index]);
end;

Ответ отправил: min@y™ (статус: Доктор наук)
Время отправки: 7 декабря 2011, 08:34
Оценка за ответ: 5

Комментарий к оценке: Точно!!! спасибо!

Мини-форум вопроса

Всего сообщений: 4; последнее сообщение — 21 декабря 2011, 11:55; участников в обсуждении: 2.
AlexMPEI

AlexMPEI (статус: 1-ый класс), 21 декабря 2011, 10:29 [#1]:

Тут сделан Хор байт. Мне же нужно Хор HEX представлений этих байт. в этом и была сложность. задача в итоге не решена - по байтам считает неправильно (если считать Хор по HEX представлению этих байт, то результат получается другой). Так что вопрос снова открыт
min@y™

min@y™ (статус: Доктор наук), 21 декабря 2011, 11:12 [#2]:

HEX представление байта - это 2 (два) байта (символа). Давай пример входных и выходных данных.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
AlexMPEI

AlexMPEI (статус: 1-ый класс), 21 декабря 2011, 11:45 [#3]:

пример: беру строку "0114000"
при подсчете контрольной суммы функцией выше получим 52
но если перевести все в байт (48 49 49 ...), а потом в HEX (30 31 31 34 30 30 30) и сделать ХОR HEX-представления, получим результат "33 34", т.е. "34"

вобщем пока печатал понял что все что мне надо - сконвертировать результат функции в НЕХ через IntToHex и я получу то что надо. :)
min@y™

min@y™ (статус: Доктор наук), 21 декабря 2011, 11:55 [#4]:

Цитата (AlexMPEI):

вобщем пока печатал понял что все что мне надо - сконвертировать результат функции в НЕХ через IntToHex и я получу то что надо.

Ну наконец-то!
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:55
Выполнено за 0.03 сек.