Предмет: Информатика, автор: zuckerMEN

Декодировать полученное сообщение c=1100011, если известно, что использовался (7, 4) – код Хэмминга. Провести кодирование кодом с проверкой четности.

(Просьба подробно расписать) 

Ответы

Автор ответа: zarj21
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;
  }
Похожие вопросы
Предмет: География, автор: damspor