where n > 1 is the number of bits and a i ∈ {0, 1}. For example, the element primitive, if absent in the case of [*] in a SMARTS pattern, means any element, or all bits set to 1. From Eqn. 1 this maps to -1. Hydrogen [#1] can simply be mapped to the second bit, reserving the first bit, and therefore maps to the integer 2, whereas anything but hydrogen [!#1] is all but the second bit on, or 2 0 -2 2 = -3. Multiple bits set in a bit vector indicate an OR style SMARTS primitive, e.g. the primitive [#7,#8] (nitrogen or oxygen) maps to 384. SMILES also follow this encoding, where each primitive has exactly one bit set.