# What is the intution behind working of hamming codes

I am trying to understand hamming codes for single bit error correction. I understood all the things like hamming distance , k bit error detection and all basics for hamming codes. Also, I know the algorithm for error correction using hamming codes. I have read many answers from different stackexchange sites and also I fear that this question may be marked as duplicated. But I am not satisfied, I just know a procedure and don’t know the intuition behind the idea.

Let’s say we need to send a 4-bit message for which three parity bits will be used. Now the sequence will be `p1 p2 m3 p4 m5 m6 m7` and my instructor is saying that `p1` will be responsible for `( 1 , 3 , 5 , 7 )` , `p2` will be responsible for `( 2 , 3 , 6 , 7 )` and `p4` will be responsible for `( 4 , 5 , 6 , 7 )`. Why is it so?

Why only $$2^n$$ position bits are selected for parity? How to visualize its working?