The ASCII
character set contains 128 defined characters. It takes 7 bits to
represent all 128 characters. Since there are 8 bits per byte, the
eighth bit can be used to detect errors. One sort of checking adds
up all the *on* (1) bits in each character transmitted. If
the number of bits is even, the eighth bit is turned on when the character
is transmitted; that forces the total number of *on* bits to be odd
and is called *odd parity*. When the receiver gets the character,
it performs the same procedure in reverse. If it gets the same answer
as was encoded in the eighth bit, the character is accepted. If
it does not, the character is in error. A related method (*even
parity*), sums the bits and turns the parity bit on if the number of
bits is odd, forcing the total number of *on* bits to be even.

Either method of checking the correctness of received
characters is called a *parity check*. Unfortunately, the method
can easily be thwarted if the errors are bad enough. If the transmission
is relatively clean and there are few errors, a simple parity check of
this sort can be reasonably effective. If any even number of data
bits are reversed (*on* to *off* or vice versa), or if any odd
number of bits are wrong and the parity bit is also incorrect, the parity
check will fail to detect an error.

Most communications programs do not rely on parity checks, however. That is especially true if you must send a full 8 bits of data, as is the case when sending executable programs, spread sheets, some kinds of word processing files, and any kind of binary data. You should set parity to none or off whenever you need to send a full 8 bits of data.

See Also