The bad ones give you a protection against error in transmission the listening station hears 010 and thinks that can't be right whats the simplest thing to do to try and find out what the weather really is because you know that an error has occured the simplest thing is to send back to San Francisco a simple 1 bit message you either send back acknowledge, in other words its a good code or not acknowledge. here I would send back a not acknowledge or a NAK as its called and the sending end would send it again next time you would hope it would come through without distortion so this is the basis of this system in that it can detect that a single error has occured the only trouble is that it cant tell you where the error occured just consider the following, i have got 010 here by changing the middle zero into a 1 but it could have happened that it came from this one (011) via distortion it could have been that the bit that got distorted was the 1 at the end and it could have been turned back into a zero making it 010 so there an error but i don't know if it came from this one or this one so this kind of code can detect an error but it cant correct it it cant tell you where it occured suppose i had an even nosier line and that in one of the 3 bit codes you hope most will go through cleanly, you hope the ones that arent clean will have at most on error in them what happens if I send 101 and there are two errors in it the errors turn the code to 000, 2 errors again the recieving end would thing its a good code and it means its foggy in San Francesco but actually its cloudy there but it go two errors so it looks like it's foggy so the point here is it can detect if there is one error but cant correct it but against two errors it changes it into a good looking code again so for this reason this system is called a distance 2 code what it is saying is, if you flip two bits it changes into another good code if you flip one bit its rubbish and you can say an error has occured 