Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Общие вопросы по программированию, компьютерный форум
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.04.2017, 19:10   #1
седьмой
Форумчанин
 
Регистрация: 17.07.2012
Сообщений: 140
По умолчанию Что такое циклическое суммирование?

Здравствуйте, в инете не нашел такого объяснения, по логике возможно это чтение каких то цифр в цикле и при остановке цикла будет наверно то самое значение итоговое. Но у меня ситуация немного иная, у меня с одно компьютера на другой уходят 20 групп данных по 2 байта в каждой группе через сом порт и мне нужно выполнить циклическое суммирование, по сути 40 байт данных, что это такое может быть не подскажете? 2 байта это наверно "слово" по правильному называется, может быть каждое слово надо перевести в 10сс или 16сс и эти 20 полученных цифр просуммировать, а полученный результат перевести в 2сс и попытаться поместить в 21е слово. Причем интересно сказано, если в этом 21 слове получилось переполнение, то к младшему разряду надо добавить единичку, что даст эта добавленная единичка и как она спасет итоговое слово от переполнения, вот я это тоже не понял, может вы знаете что это за действие такое?
седьмой вне форума Ответить с цитированием
Старый 20.04.2017, 20:27   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,706
По умолчанию

Циклическая сумма - это просто сумма всего, обычно берется по модулю какому-нибудь. Погуглите про CRC, например.
p51x вне форума Ответить с цитированием
Старый 21.04.2017, 07:35   #3
седьмой
Форумчанин
 
Регистрация: 17.07.2012
Сообщений: 140
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Циклическая сумма - это просто сумма всего, обычно берется по модулю какому-нибудь. Погуглите про CRC, например.
Спасибо, очень интересно, про циклическую сумму нашел, но мне почему-то кажется, что если я просуммирую 20 слов, то переполнение может быть наверняка, ну или с вероятностью более 50%. Грубо прикинул на калькуляторе, переполнение теоретически на 1 слово (16 бит или 2 байта) для 20 слов, может быть целый байт. Наверно есть разные методы проверки (сличения) CRC. Нашел например такую методику Например, у вас ест данные: 124356...386754, которые передаются по сети. Вы их суммируете и получаете остаток, от деления суммы на 256, к примеру: (1+2+4+3+5+6 + ... +3+8+6+7+5+4) mod 256= 212; И по сети передаете данные, а под конец - это число - 212. получатель данных складывает данные, которые получил, и получает их остаток от деления на 256. Если это 212, то, скорее всего, во время транспортировки данных не произошло их искажения. А иначе - искажение произошло. Но мне в документации предлагается при переполнении просто добавить 1 к младшему разряду CRC не знаете, что это даст?
седьмой вне форума Ответить с цитированием
Старый 21.04.2017, 07:50   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,706
По умолчанию

Это даст совпадающий алгоритм вычисления контрольной суммы. Если мы с вами договарились, что когда вы ко мне прийдете, то постучите три длинных стука, а если прийдете не один, то три длинных и один короткий... что даст один короткий, кроме известной для нас двоих инфы?
p51x вне форума Ответить с цитированием
Старый 21.04.2017, 07:55   #5
седьмой
Форумчанин
 
Регистрация: 17.07.2012
Сообщений: 140
По умолчанию

не видел что вы ответили, надо было сперва обновить экран
седьмой вне форума Ответить с цитированием
Старый 21.04.2017, 07:57   #6
седьмой
Форумчанин
 
Регистрация: 17.07.2012
Сообщений: 140
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
что даст один короткий, кроме известной для нас двоих инфы?
Все так просто? Интересно кто это придумал, спасибо огромное!
седьмой вне форума Ответить с цитированием
Старый 30.04.2017, 23:04   #7
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,546
По умолчанию

Контрольная сумма с переносом (КС), описаннря в стартовом посте, и CRC (Cyclic redundancy check) - это вообще-то как винтовка Мосина обр. 1891г. и АК-74. Вот здесь https://habrahabr.ru/post/278171/ очень популярно описано. Если к примеру, в передаваемом пакете просто переставить местами байты, CRC это обнаружит, а КС - нет. Таким образом, CRC - более мощное средство контроля, особенно если CRC-16 или выше. Но за надежность приходится платить некоторым усложнением алгоритма.
https://ru.wikipedia.org/wiki/%D0%A6...BA%D0%BE%D0%B4 - здесь тоже хорошо изложено.

Последний раз редактировалось digitalis; 30.04.2017 в 23:09.
digitalis вне форума Ответить с цитированием
Старый 30.04.2017, 23:38   #8
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,706
По умолчанию

digitalis, к чему ваш пост? Вы еще про Хафмана, свертки и помехоустойчивое кодирование расскажите.
p51x вне форума Ответить с цитированием
Старый 01.05.2017, 11:33   #9
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,546
По умолчанию

Да просто расставить точки над ё - для ясного понимания картины. Для меня дополнительная информация никогда не была лишней - пригодится когда-нибудь. Ошибался, выходит.
Помехоустойчивое кодирование ТС-у для сдачи лабы вряд ли понадобится. А если считается, что мой пост нарушил стройное течение форума, то его и удалить недолго.
digitalis вне форума Ответить с цитированием
Старый 13.06.2017, 09:46   #10
седьмой
Форумчанин
 
Регистрация: 17.07.2012
Сообщений: 140
По умолчанию

Цитата:
Сообщение от digitalis Посмотреть сообщение
Помехоустойчивое кодирование ТС-у для сдачи лабы вряд ли понадобится
Нет вы не ошиблись спасибо, это не лабы, это взрослые игры...
седьмой вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
что такое f. spezzA Паскаль, Turbo Pascal, PascalABC.NET 1 13.06.2011 16:21
Что такое хорошо, а что такое плохо... EL_MoC Microsoft Office Word 6 14.04.2011 18:49
Что такое ^= ? k1r1ch Общие вопросы C/C++ 3 10.01.2010 17:15
Что такое SE LOPKOT HTML и CSS 5 31.08.2009 21:50
то такое мастерство в программировании, что такое мастер программист и что он может? Cezar Свободное общение 29 02.06.2007 23:48