Error detection and correction codes add additional data bits to transmitted messages to detect and possibly correct errors caused by noise during transmission. Error-detecting codes only detect errors while error-correcting codes can detect and correct errors by determining the location of corrupted bits. Common techniques for error detection include parity checks, which use an extra parity bit to make the total number of 1 bits in a message either even or odd.