![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 05.05.2009
Сообщений: 20
|
![]()
Здраствуйте!
есть задача вычисления контрольной суммы, которая вычисляется как "дополнение до 0 побайтной суммы всех остальных элементов структуры". Например есть массив байт {06,00,00,00,00}. Его контрольной суммой является число FA, или, другой пример, для массива {06,EA,2F,0E,00} - D3. Я указываю в 16ой системе, так это лог COM порта Для меня не очень понятно "дополнение до 0". Опытным путем я вычислил, что контрольной суммой является число, которое дополняет сумму членов массива до круглого числа, для 16-й системы это числа 100, 200, 300 (256, 512 Dec и т.д.), т.е числа кратные 256. Поэтому, я замутил примерно такой алгоритм Код:
Никто не подскажет как реализовать это работая непосредственно с байтами? P/S/ Кажется я запутался уже системами исчисления... ![]() |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
![]()
Изучите операторы ^ и ~.
Также подумайте над заменой этой строки Код:
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Контрольная сумма | Vito89 | Общие вопросы Delphi | 1 | 17.03.2011 00:21 |
Контрольная сумма | Bad-Teo | Фриланс | 4 | 29.12.2010 01:46 |
контрольная сумма | мандарин | Помощь студентам | 3 | 03.06.2007 19:35 |