hamming.c -- my implementation of the encode function, with some auxiliary routines such as for printing an integer's bit representation my_encoder.c -- when linked with a hamming.h implementation, provides a front-end for the encode function: accepts a hex integer as a command-line argument representing the text and prints out the codeword, also in hex my_decoder.c -- analogous to my_encoder.c, but for the decode function my_invert.c -- when linked with a hamming.h implementation, this program checks that the program decodes corrupt codewords. Specifically, for a large (million or so) number of text words x, the program takes encode(x), and for each of 31 bits it flips a bit to form encode(x)', then verifies that x=decode(encode(x)'). When it encounters an error indicates the text and which bit was flipped. Stops at 50 errors. test 1 & 2 tested whether the student's program encoded and decoded properly the words supplied in the provided testdata.txt. test 3 used my_invert as described above.