Форум С++

 

Ответить на сообщение

Вернуться к теме

Вы отвечаете на сообщение:

Автор: ARES23Rus   (23.03.2012 в 18:07)
помогите я написал программу которая изменяет данные в хекс, мне нужно рассчитать контрольную сумму строки. писал на С++.
пример записи hex

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

Файл формата Intel HEX может состоять из любого количества записей. Каждая запись представляет собой ASCII-строку состоящую из нескольких пар 16-ричных цифр. Строка должна начинаться с символа двоеточия и оканчиваться парой символов CR и LF. Запись состоит из пяти полей следующего формата:
:LLAAAATTDD...CC
Каждая группа букв (LL, AAAA, TT и т. д.) представляет собой отдельное поле. Каждая буква — отдельную 16-ричную цифру (4 бита). Каждое поле состоит, как минимум, из двух 16-ричных цифр (байт). Ниже представлена расшифровка полей записи:
: Каждая запись в файле Intel HEX должна начинаться с двоеточия.
LL Поле длины — показывает количество байт данных (DD) в записи.
AAAA Поле адреса — представляет начальный адрес записи.
TT Поле типа. Оно может принимать следующие значения:
00 запись содержит данные двоичного файла.
01 запись является концом файла.
02 запись адреса сегмента (подробнее см. ниже).
03 Start Segment Address Record.
04 запись расширенного адреса (подробнее см. ниже).
05 Start Linear Address Record.
DD Поле данных. Запись может содержать несколько байт данных. Количество байт данных должно соответствовать полю LL.
CC Поле контрольной суммы. Поле контрольной суммы вычисляется путем сложения значений всех байт (пар 16-ричных цифр) записи по модулю 256 с последующим переводом в дополнительный формат (отнять получившееся значение от 0). Таким образом, если просуммировать все пары шестнадцатеричных чисел, включая LL, AA, TT, DD, CC, получится 0.


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


Ваше имя:

Пароль:

Цитировать

Используйте тэги для выделения текста:
Код: [code][/code]
Жирный: [b][/b]
Наклонный: [i][/i]
URL: [url][/url]

Сообщение:

Прикрепить: