Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > .hex контрольная сумма С++


Автор: ARES23Rus 23.3.2012, 17:29
помогите я написал программу которая изменяет данные в хекс, мне нужно рассчитать контрольную сумму строки. писал на С++. 
пример записи hex. можете просто дать пример программы на С++ любой платформы я переделаю по себя сам. заранее спс =)

:10010000214601360121470136007EFE09 D2190140
:100110002146017EB7C20001FF5F160021 48011988
:10012000194E79234623965778239EDA3F 01B2CAA7
:100130003F0156702B5E712B722B732146 013421C7
:00000001FF


http://ru.wikipedia.org/wiki/Intel_Hex

P.S. всё обычно делаю сам но инфу найти не могу =( 

Автор: feodorv 23.3.2012, 18:02
Цитата(ARES23Rus @  23.3.2012,  18:29 Найти цитируемый пост)
но инфу найти не могу

Вроде, всё ясно написано:
Цитата
Поле контрольной суммы вычисляется путем сложения значений всех байт (пар 16-ричных цифр) записи по модулю 256 с последующим переводом в дополнительный формат (отнять получившееся значение от 0). Таким образом, если просуммировать все пары шестнадцатеричных чисел, включая LL, AA, TT, DD, CC, получится 0.

И пример приведён:
Цитата

Пример записи:
:00000001FF где:

  ...
  FF Контрольная сумма, вычисленная как 01h + NOT(00h + 00h + 00h + 01h).

То есть:
Код

crc = (1 + ~sum) & 0xff;

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)