1. A method of computing a programming vector for a multi-level cell (MLC) memory array comprising: mapping a first pair of bits from a binary input register to a first element in a programming vector, wherein each element in the programming vector corresponds to a single charge storage region of an MLC in said array.