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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.07.2012, 10:00   #1
Lepys
 
Регистрация: 20.07.2012
Сообщений: 9
По умолчанию я так понял контрольная сумма в конце.

Добрый день! вот часть кода в хек формате.
:100000006C210000000100000000000000 0000431F
:100010004E443838344B514B5600000003 F057170C
:1000200004094D4E323035424200000000 0000000D
:100030000000004865776C6574742D5061 636B61D6
Я так понимаю каждые два последних символа в строчке это контрольная сумма. А как ее вычислить не пойму?
Lepys вне форума Ответить с цитированием
Старый 26.07.2012, 10:30   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,830
По умолчанию

Открываем http://ru.wikipedia.org/wiki/Intel_HEX и читаем "Последний байт в записи является контрольной суммой. Рассчитывается так чтобы сумма всех байтов в записи была равна 0."
p51x вне форума Ответить с цитированием
Старый 26.07.2012, 15:50   #3
Lepys
 
Регистрация: 20.07.2012
Сообщений: 9
По умолчанию

Ок! Спасибо! Я понял что за что отвечает в коде. Но непонятно каким образом вычислять контрольную сумму, как все это сложить например в этом коде :100000006C210000000100000000000000 0000431F чтоб в конче получилось 1F
Lepys вне форума Ответить с цитированием
Старый 26.07.2012, 16:05   #4
Lepys
 
Регистрация: 20.07.2012
Сообщений: 9
По умолчанию

Контрольная сумма, вычисленная как 01h + NOT(00h + 00h + 00h + 01h). Как понять не разберусь
Lepys вне форума Ответить с цитированием
Старый 26.07.2012, 16:12   #5
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,830
По умолчанию

Цитата:
Но непонятно каким образом вычислять контрольную сумму, как все это сложить например в этом коде
Чукча не читатель?

Цитата:
:100000006C210000000100000000000000 0000431F
Написано же "побайтно": 10 + 00 + ... + 6С + 21 + ... + 43 = DATA
Читаем дальше:
Цитата:
Рассчитывается так чтобы сумма всех байтов в записи была равна 0
BYTE(DATA) + CRC = 0
p51x вне форума Ответить с цитированием
Старый 26.07.2012, 16:49   #6
Lepys
 
Регистрация: 20.07.2012
Сообщений: 9
По умолчанию

Я все сложил кроме 1F получилось F0 + CRC (то есть это 1F ) = 10F
Lepys вне форума Ответить с цитированием
Старый 26.07.2012, 17:12   #7
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Интересно складывали. Там получается E1 + 1F = 100 - что и нужно
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 26.07.2012, 17:19   #8
Lepys
 
Регистрация: 20.07.2012
Сообщений: 9
По умолчанию

я сложил 10+6C+21+10+43
Lepys вне форума Ответить с цитированием
Старый 26.07.2012, 17:24   #9
Zer0
Форумчанин
 
Аватар для Zer0
 
Регистрация: 13.12.2007
Сообщений: 788
По умолчанию

Вообще то берется по модулю 256 (однобайтовое число)
Если сложить F0 и 1F, как раз и получится 0
благодарность - сюда (не забываем писать от кого)
Zer0 вне форума Ответить с цитированием
Старый 26.07.2012, 17:32   #10
Lepys
 
Регистрация: 20.07.2012
Сообщений: 9
По умолчанию

Цитата:
Сообщение от Zer0 Посмотреть сообщение
Вообще то берется по модулю 256 (однобайтовое число)
Если сложить F0 и 1F, как раз и получится 0
Объясните пожалуйста по подробнее
Lepys вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Контрольная сумма Vito89 Общие вопросы Delphi 1 17.03.2011 00:21
Jabber. Так и не понял что мне с ним делать Web-Gangsta Свободное общение 3 14.02.2010 12:43
Сумма по полям в конце таблицы Subscriber SQL, базы данных 8 05.03.2009 13:49
контрольная сумма мандарин Помощь студентам 3 03.06.2007 19:35