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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.10.2010, 19:17   #1
ATAMAN200
Пользователь
 
Регистрация: 30.08.2010
Сообщений: 41
По умолчанию Интересный пример для расчёта контрольной суммы.

Цитирую из http://rfc2.ru/1071.rfc
Цитата:
Приведенный ниже пример на языке C показывает расчет контрольной суммы с использованием внутреннего цикла сложения 16-битовых значений в 32-битовый «аккумулятор
Код:
in 6
    {
        /* Расчет контрольной суммы Internet для count байтов,
         * начиная с addr.
         */
     register long sum = 0;

     while( count > 1 )  {
        /*  Внутренний цикл */
            sum += * (unsigned short) addr++;
            count -= 2;
    }

        /*  Прибавляем байт переноса, если он есть */
    if( count > 0 )
            sum += * (unsigned char *) addr;

        /*  поместим 32-битовую сумму в 16 битов */
    while (sum>>16)
        sum = (sum & 0xffff) + (sum >> 16);

    checksum = ~sum;
}
но это ладно вроди надо обявить переменные которые выше не объявлены
Код:
#include "stdafx.h"

int _tmain(int argc, _TCHAR* argv[])
{
register long sum = 0;
register long count = 0xfa55aa67;
     while( count > 1 )  {
        /*  Внутренний цикл */
            sum += * (unsigned short) addr++;
            count -= 2;
    }

        /*  Прибавляем байт переноса, если он есть */
    if( count > 0 )
            sum += * (unsigned char *) addr;

        /*  поместим 32-битовую сумму в 16 битов */
    while (sum>>16)
        sum = (sum & 0xffff) + (sum >> 16);

   register long checksum = ~sum;

	return 0;
}
может так но вот это как понять "* начиная с addr." начиная с какого addr
ATAMAN200 вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужно вычислить алгоритм подсчета контрольной суммы строки Walter Reed Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 30.01.2010 19:53
Программу для расчёта площади окружности Rostbook Помощь студентам 14 28.06.2009 00:54
Помогите с алгоритмом для расчёта контрольной суммы Andrej_Svininykh Общие вопросы по Java, Java SE, Kotlin 0 17.10.2008 21:17
Алгоритм вычисления контрольной суммы файлов young_W Общие вопросы Delphi 2 11.09.2007 22:22