Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Вычисление контрольной суммы для посылки в COM порт  (Прочитано 7922 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Lord
Гость
« : 06-09-2003 06:40 » 

Доброго вам времени суток!
У меня небольшой вопросик:
В паскале есть ord , а что в С++?
Мне собственно надо перевести функцию
Код:
function ks(s:string):integer;
var i,k:integer;
begin
 ks:=0; k:=0;
 for i:=1 to length(s) do
     k:=k+(ord(s[i]) xor (i-1));
 ks:=k;
end;
« Последнее редактирование: 19-11-2007 17:54 от Алексей1153++ » Записан
Serega
Гость
« Ответ #1 : 06-09-2003 06:47 » 

Если мне не изменяет память и ord это получить ascii номер знака
то в C++ будет так
Код:
long ks(string s)
{
  long result = 0;
  for(int i = 0; i < s.length(); ++i)
  {
    result += s[i] ^ (i - 1);
  }
  return result;
}
« Последнее редактирование: 19-11-2007 17:55 от Алексей1153++ » Записан
Lord
Гость
« Ответ #2 : 06-09-2003 06:50 » 

Спасибо !!!
Записан
ixania
Гость
« Ответ #3 : 07-09-2003 22:39 » 

Вот я писал драверок для картридера, вычислеал суму так

char LRC(char* buffer) // буфер пакета данных
{
  char res = *buffer++;

  for ( ; *buffer != ETX; )  res ^= *buffer++;

  res ^= *buffer++;

  *buffer = res;  // сохраняем сумму в конце

  return res; // вернуть результат
}
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines