Разработка двух функций code и decode, вставляемых в учебную программу «Стенд»

Страницы работы

Содержание работы

Министерство образования и науки РФ

Новосибирский государственный технический университет

Кафедра ВТ

Лабораторная работа № 1

«Кодирование по паритету»

Группа:  Ам-209                  

Студенты:      Клименков В.В.

                        Кулубеков В.Р.

                        Майснер М.Ю.

Преподаватель: Титов Г.И.

Новосибирск 2005

Задание:

            Разработать две функции code и decode, вставляемые в учебную программу «Стенд», реализующих кодировку и декодировку 7-разрядных двоичных чисел, используя алгоритм кодирования по паритету.

Выполнение:

Текст функции code:

char encode(char value)

{

            unsigned char t=value, j=0, a=1;      //инициализация переменных

            for (;t!=0;)                                        // цикл, пока во вх.числе есть «1»

j=j+t&a, t=t>>1;                              // флаг четности и сдвиг вх.слова на 1 разряд влево

            return value|(j<<7);                         // возврат вых. слова

}

Граф схема алгоритма функции кодирования:


Рис. 1. Граф схема алгоритма функции code

Текст функции decode:

сhar decode(char value)

{

            unsigned char j=0,a=1,t=value;    //инициализация вспомогательных переменных

            for (;t!=0;) j=j+t&a, t=t>>1;        // цикл пока есть «1»

            return (value&0x7F)|(j<<7);        // выработка вых. числа

}

Граф схема алгоритма функции декодирования:

           


Рис. 2. Граф схема алгоритма функции decode

Выводы:

            Кодирование с паритетом позволяет отслеживать факт наличия одинарной ошибки, но не в силах определить двойную ошибку. В целом, благодаря простоте реализации, этот вид кодирования применим на надежных каналах, где вероятность ошибок минимальна, либо на каналах, не имеющих жестких требований к надежности передачи данных.

Похожие материалы

Информация о работе