Вот таблица значений Хэмминга (8,4) для вашего удовольствия от копирования / вставки ...
uint8_t hamming84table[16] = {
0b00000000,
0b11010010,
0b01010101,
0b10000111,
0b10011001,
0b01001011,
0b11001100,
0b00011110,
0b11100001,
0b00110011,
0b10110100,
0b01100110,
0b01111000,
0b10101010,
0b00101101,
0b11111111
};
Этот код должен работать на C, C ++, Java и большинстве других подобных программ.
Вы можете изменить unint_8
в соответствии с типом байта без знака на выбранной платформе.
Добро пожаловать.
(Кстати, если вы не знаете, что это такое - если вам нужно отправить значение в диапазоне 0-15 по каналу с помехами, то вы можете отправить соответствующий 8-битный шаблон выше. Затем напринимающая сторона, если вы получаете один из вышеприведенных шаблонов, вы можете посмотреть, какое значение было отправлено, и быть настолько уверенным, насколько это возможно, с таким большим количеством данных, что вы получили правильное значение. Если вы не получите одно из вышеуказанных значенийтогда, по крайней мере, вы знаете, что это испортилось при передаче, и вы даже можете потенциально восстановить то значение, которое, вероятно, было отправлено из испорченного значения. Так круто. )