even parity check relies on counting the number of 1's in each byte and making this number even (by adding an extra 1 or 0 at the end of each byte)
odd parity check relies on counting the number of 1's in each byte and making the amount odd (by adding an extra 1 or 0 at the end of each byte)
there are three bytes in the example (we can ignore the checksum byte since it is not one of our choices; however remember in the future that the checksum byte can also be corrupted)
this means two of the bytes have been corrupted - two bytes will have a different number of 1's compared to the other byte.
----
if the two corrupted bytes have an even number of 1's, odd parity will add 1's to the corrupted bytes and fix the error (it also add a 0 to the UNCORRUPTED BYTE)
if the two corrupted bytes have an odd number of 1's, even parity will add 1's to the corrupted bytes and fix the error (it also add a 0 to the UNCORRUPTED BYTE)
if the two corrupted bytes have an odd number of 1's, odd parity will add a 1 to the UNCORRUPTED BYTE (all 3 bytes would now be corrupted)
if the two corrupted bytes have an even number of 1's, even parity will add a 1 to the UNCORRUPTED BYTE (all 3 bytes would now be corrupted)
----
find two bytes which are even or two that are odd. <- these two will be corrupted
im sorry - it is freaking hard to explain; just keep looking over it and try to get it. anyone else help him cuz i cant =]
2nd question
Checksum calculates the number of 1's in a packet (group of bytes) then does this formula to get a number (you should look over your textbook again at this).
checksum has a major flaw - if you changed a 1 to a 0 ANYWHERE then changed a 0 to a 1 ANYWHERE it would still think there are the same number of 1's - ending up with the same calculation
Parity check detects changes to the number of 1's in each and every byte, so it would detect it - again freaking hard to explain refer to the last question's explanation.