Predict first: will a check that catches one flipped bit always catch two? This is an invented, tiny communication model, not a simulation of a particular phone or railway safety system.
1. Build and send a byte
Tap a data bit to toggle 0 / 1. Each source change automatically sends a fresh frame and clears transit changes. Keyboard: Tab to a bit, then Space or Enter.
Extra even-parity bit: —
Sent frame
The bar separates the eight data bits from the ninth, parity bit; it is not transmitted.
2. Change the received bits
The last button is the parity bit. Toggle any bit to model an error. Toggle it again to undo that change.
Each example starts from the sent frame, not the previous example.
Total received 1s: —
3. Three detective missions
- Resend the frame, then flip any one received bit. Does the receiver flag an error? Try the parity bit too.
- Resend, then flip two different bits. The comparison shows changes, but does the parity test notice?
- Make three different bits differ from the original. Predict the result before the last flip. Then undo one of those changes.
What the check actually promises
Even parity adds 0 if the eight data bits already have an even number of 1s, or 1 if they have an odd number. The receiver counts all nine bits. An odd total flags an error.
Every bit flip switches the total's parity. An odd number of differing bit positions is detected; a nonzero even number is missed. A passing check means no error detected, not “definitely correct”. Repeatedly flipping the same position can undo an earlier change.
Parity alone cannot tell which bit changed or correct the message. The lab shows the original alongside the received frame to teach the limitation; the receiver's parity test uses only the received frame. Other error-detection and correction schemes can do more. This lab is not an encryption or security tool.
4. Check your reasoning
Keep exploring
Draw with binary bytes · Rescue missing packets · Compress pixel data
No account, cookies, saved scores, browser storage or input uploads. Reloading resets your experiment.