Сергей Саенко
Знаток
(323),
на голосовании
11 лет назад
Есть функция поиска ошибочного бита в сообщении. Это реализация Кода Хемминга. Код на С++
int find_mistake() { int i, mistake = 0; for (i = 0; i < len; i ++) if (input == '1') mistake ^= i + 1; return mistake; }
if (input == '1') mistake ^= i + 1; <- не понимаю конкретно эту строчку. Какая связь между XOR и алгоритмом Хэмминга.
input - кодовое слово с возможной ошибкой. И проблема в том, что я не до конца понял как эта функция работает. за счет каких манипуляций находится ошибка. Кто сможет объяснить?
Это реализация Кода Хемминга.
Код на С++
int find_mistake()
{
int i, mistake = 0;
for (i = 0; i < len; i ++)
if (input == '1')
mistake ^= i + 1;
return mistake;
}
if (input == '1') mistake ^= i + 1; <- не понимаю конкретно эту строчку. Какая связь между XOR и алгоритмом Хэмминга.
input - кодовое слово с возможной ошибкой.
И проблема в том, что я не до конца понял как эта функция работает. за счет каких манипуляций находится ошибка.
Кто сможет объяснить?