QR codes use black and white squares to represent the 1s and 0s of binary information. The large squares in the corners (and sometimes along the edges) tell the scanner which way is “up” for the code, and a repeating pattern of “10” close to the top and side of the code (even with the bottom edge of the squares across the top, even with the right side of the squares along the lefthand side) tell the scanner how big the individual small squares are. There’s other information contained within the code to tell the scanner what version the code is in. After that, the scanner reads the code itself and follows whatever instructions are built into the code (usually a web address). Part of the code is actual information, and part of it is error correcting code (there’s an *awful* lot of math involved) in case part of the code itself is damaged.
It’s a good deal more complicated than that, but that’s the ELI5 version. If you want more details, the [wikipedia page](https://en.wikipedia.org/wiki/QR_code) does a good job of giving the history and linking to the actual standards of the codes being used.
Latest Answers