I thought this was a fantastic post, it goes right down to binary and logical operators then back up again.
After understanding the alignment, Z then writes three other ways of doing the same thing, disassembles them and benchmarks them.
Discussing this on HN, I said:
I have banned myself from using printfs to figure out things like this. Instead I would use a debugger and breakpoints to view the live variables in their different data formats.