ABCDEFG 1111000 1110100 1000110 0001011 1100011 arbitrary set: 0100001 Now, I'll transpose the matrix, since I think it makes it easier to explain. SSSSS eeeee ttttt 12345 +----- A|11101 B|11001 C|11000 D|10010 E|01100 F|00111 G|00011 So instead of listing the sets horizontally, I list them vertically. Each horizontal row is an element. Internally, each of those horizontal numbers there is stored as a new integer. So instead of storing "1111000" for the set "ABCD", I store "11101" for the set of all sets taht contain "A".