"Methods of Information Handling", Charles Bourne - https://archive.org/details/methodsofinforma0000unse/page/n5... (not available to read)
"Punched Cards: Their Applications to Science and Industry", https://archive.org/details/punchedcardsthei0000robe (can be checked out)
The first of these is a much better book.
They show a number of ways to encode values, such as a 5-hole triangle code, where the "O" in the following indicates a hole:
O O O O O
9 5 2 0
8 4 1
7 3
6
To encode the value "8", notch out the holes (indicated with "U") which cross to 8 (indicated with "\" and "/"), like this: U O U O O
\9 5/ 2 0
\8/ 4 1
7 3
6
This lets you encode 10-digit values with 5 holes and two needles -- remember, inserting the needles takes time. (And there were all sorts of devices made to minimize that time.)There were also extensions of these to handle names, used to search small (< ~10,000) literature collections, and more.
The most mathematically sophisticated is likely Zatocoding, a superimposed coding method related to Bloom filters.
The Bourne book goes into these variations in detail.
Here's a video of someone scanning in edge-notched cards for bird identification. https://youtu.be/MBwP3YOxw3I
About 10 years ago I really go into the topic and made some cards of my own, using a cutting machine to make each card, precut, from an SVG.