Да, если вы нумеруете биты от 1 на правом конце, то 0x000444 кодируется как 0x00004422 для (31,26) кода Хэмминга - для кодового слова четной четности.
Где C1, C2, et c - биты 1, 2, et c кодового слова, а P1, P2, et c - биты четности 1, 2, et c. Я думаю, что яснее сказать, что:
P1 = C1 = Bitwise_XOR(C3, C5, C7, C9, ...)
так что:
Bitwise_XOR(C1, C3, C5, C7, C9, ...) == 0
и так далее. Это даже паритет.
Вы не говорите, какой "калькулятор" вы пробовали, но возможно, что расхождение, которое вы видите, связано с тем, с какой стороны вы набрали номер. Я отмечаю, что Википедия дает:
Если байт данных для кодирования равен 10011010, то слово данных (использующее _ для представления битов четности) будет __1_001_1010, а кодовое слово - 011100101010.
, который четко подсчитывает биты с левого конца.
Сожалею, что не понимаю вашего второго вопроса. Я могу сказать, что код Хэмминга (31, 26) действительно принимает 26 бит данных и добавляет 5 битов четности, чтобы получить кодовое слово 31 бит. И что (7,4) код Хэмминга также действует для 4 битов данных, 3 битов четности и 7-битового кодового слова.