Prof. Dr. Thorsten Jungmann (last updated 2026-10-03)

Richard Wesley Hamming (1915–1998) was an American mathematician whose work had many implications for computer engineering and telecommunications. He was born in Chicago, received his B.S. in mathematics from the University of Chicago in 1937, his M.A. from the University of Nebraska in 1939 and his Ph.D. from the University of Illinois Urbana-Champaign in 1942. In April 1945 he joined the Manhattan Project at the Los Alamos Laboratory, where he programmed IBM calculating machines. In 1946 he moved to the Bell Telephone Laboratories, where he shared an office for a time with Shannon. In 1968 he received the ACM Turing Award, and after retiring from Bell Labs in 1976 he taught at the Naval Postgraduate School in Monterey, California.

Hamming’s best-known work grew out of a failure. In 1947 he set the calculating machines at Bell Labs to run a long calculation over a weekend, only to find on Monday that an error early in the process had stopped it. The machines could already detect such an error with a two-out-of-five code, but they could not correct it. Hamming reasoned that a machine which can detect an error should also be able to locate and correct it itself. In a landmark paper of 1950 he introduced the number of positions in which two code words differ – today called the Hamming distance (German: Hamming-Abstand) – and thereby created a family of error-correcting codes, the Hamming codes (German: Hamming-Code).

For binary words of equal length, the Hamming distance is the number of positions at which the corresponding bits differ; for example, 0000 and 1111 have a Hamming distance of 4. The minimum Hamming distance between the code words of a code determines how many errors the code can detect: a code detects up to errors if its minimum Hamming distance is at least . A parity code has a Hamming distance of 2, so a single flipped bit is detected but cannot be corrected. Hamming codes can detect one-bit and two-bit errors or correct one-bit errors; the Hamming(7,4) code adds three parity bits to four data bits, and extended Hamming codes, which add an overall parity bit, are widely used in computer memory with error correction (ECC memory). Adjacent code words of a Gray code have a Hamming distance of 1. Hamming also devised the Hamming window for digital filters.

Reference and further reading:
https://en.wikipedia.org/wiki/Richard_Hamming
https://en.wikipedia.org/wiki/Hamming_distance
https://en.wikipedia.org/wiki/Hamming_code
https://en.wikipedia.org/wiki/Gray_code