Путаница кода Хэмминга
Мне трудно ответить на эту проблему. Вот оригинальный вопрос:
Слово кодируется контрольными битами
0111
(с8, с4, с2 и с1). Слово читается как11101011
(данные). Что такое оригинальное слово данных?
Я подумал, что, поскольку есть 4 контрольных бита, это должно быть 4-битное слово памяти, в котором всего 16 возможных слов: 0000, 1000, 0100, 1100, 0010, 1010, 0110, 1110, 0001, 1001, 0101, 1101, 0011, 1011, 0111, 1111
, Следовательно, каждое кодовое слово имеет 8 битов, а контрольные биты находятся в позициях 1, 2, 4 и 8.
- бит 1 проверяет четность по битам: 1, 3, 5, 7, 9, 11
- бит 2 проверяет четность по битам: 2, 3, 6, 7, 10, 11
- бит 4 проверяет четность по битам: 4, 5, 6, 7, 12
- бит 8 проверяет четность по битам: 8, 9, 10, 11, 12
Я также знаю, что для установки бита четности равным 1, если общее количество проверок 1 нечетно, а если для всех 1 проверено четное, то установить бит четности равным 0.
Я думаю, что слово "прочитанное назад" должно содержать ошибку, и я должен исправить это, тогда это позволит мне найти оригинальное слово данных.
Это то, что происходит в этом вопросе?
1 ответ
Сообщение: 11000010
Метод А:
CBA987654321 <-- Hexadecimal
1100?001?0??
C=1100
B=1011
5=0101
______
X=0010
Тестируйте каждый бит по вертикали (XOR).
Решение:
1100?001?0??
0 0 10
110000010010
Метод Б:
CBA987654321 <-- Hexadecimal
1100?001?0??