Министерство общего и профессионального образования Российской Федерации
Новосибирский государственный технический университет
Кафедра вычислительной техники
Лабораторная работа №1
по дисциплине “Кодирование и передача данных”
Тема: “ Кодирование по паритету”
Студенты: ______________
______________
______________
______________
Проверил: Титов Г. И.
1. Цель работы
Изучить принципы кодирования по паритету. Реализовать функции кодирования и декодирования байта по паритету.
2. Реализация функций
Кодирование:
char encode(char value)
{
char out = value;
int sum = 0;
for (int n = 0; n < 7; n++)
{
sum += value % 2;
value /= 2;
}
out = out | (sum % 2) << 7;
return out;
}
Декодирование:
char decode(char value)
{
int in = value;
int out = value;
int sum = 0;
if ((in & 0x7F) != in)
{
sum++;
in &= 0x7F;
}
for (int n = 0; n < 8; n++)
{
sum += in % 2;
in /= 2;
}
if (sum % 2 == 0)
return (out & 0x7F);
return (out | 0x80);
}
3. Блок-схемы алгоритмов
Блок-схема кодирования Блок-схема декодирования
4. Вывод
Кодирование с паритетом позволяет отслеживать факт наличия одинарной ошибки, но не в силах определить двойную ошибку. В целом, благодаря простоте реализации, этот вид кодирования применим на надежных каналах, где вероятность ошибок минимальна, либо на каналах, не имеющих жестких требований к надежности передачи данных.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.