Министерство образования и науки РФ
Новосибирский государственный технический университет
Кафедра ВТ
«Кодирование по паритету»
Группа: Ам-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
Выводы:
Кодирование с паритетом позволяет отслеживать факт наличия одинарной ошибки, но не в силах определить двойную ошибку. В целом, благодаря простоте реализации, этот вид кодирования применим на надежных каналах, где вероятность ошибок минимальна, либо на каналах, не имеющих жестких требований к надежности передачи данных.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.