Предмет: Информатика,
автор: zuckerMEN
Декодировать полученное сообщение c=1100011, если известно, что использовался (7, 4) – код Хэмминга. Провести кодирование кодом с проверкой четности.
(Просьба подробно расписать)
Ответы
Автор ответа:
0
#include <stdio.h>
#include <stdlib.h>
char input[1024];
int len;
int find_mistake()
{
int i, mistake = 0;
for (i = 0; i < len; i ++)
if (input == '1')
mistake ^= i + 1;
return mistake;
}
int main()
{
int i, mistake = 0;
char info[1024];
int info_pos = 0;
int b = 1;
printf("Enter code: ");
scanf("%s", input);
len = strlen(input);
for (i = 0; i < len; i++)
if (input != '0' && input != '1')
{
printf("Invalid code.n");
return -1;
}
mistake = find_mistake();
if (mistake)
{
input[mistake - 1] ^= '0' ^ '1';
mistake = find_mistake();
if (mistake)
{
printf("Invalid code.n");
return -1;
}
}
printf("Fixed code: %sn", input);
for (i = 0; i < len; i++)
if (i + 1 == b)
b <<= 1;
else
info[info_pos++] = input;
info[info_pos] = ' ';
printf("Informational string: %sn", info);
return 0;
}
#include <stdlib.h>
char input[1024];
int len;
int find_mistake()
{
int i, mistake = 0;
for (i = 0; i < len; i ++)
if (input == '1')
mistake ^= i + 1;
return mistake;
}
int main()
{
int i, mistake = 0;
char info[1024];
int info_pos = 0;
int b = 1;
printf("Enter code: ");
scanf("%s", input);
len = strlen(input);
for (i = 0; i < len; i++)
if (input != '0' && input != '1')
{
printf("Invalid code.n");
return -1;
}
mistake = find_mistake();
if (mistake)
{
input[mistake - 1] ^= '0' ^ '1';
mistake = find_mistake();
if (mistake)
{
printf("Invalid code.n");
return -1;
}
}
printf("Fixed code: %sn", input);
for (i = 0; i < len; i++)
if (i + 1 == b)
b <<= 1;
else
info[info_pos++] = input;
info[info_pos] = ' ';
printf("Informational string: %sn", info);
return 0;
}
Похожие вопросы
Предмет: География,
автор: damspor
Предмет: Математика,
автор: znanija22228
Предмет: Алгебра,
автор: knowlyaburst
Предмет: Алгебра,
автор: evelina111122
Предмет: Математика,
автор: Linda99