A method of encoding data includes representing the data as number(s) in a first
base. The method further includes converting the number(s) into a number(s) in
a second base. The resultant number in the second base can be viewed as data suitable
for encoding using an ECC algorithm. After being ECC encoded, the data may be further
modulation encoded. Modulation encoding may include transforming each symbol to
a value that constrains run lengths of a binary value (e.g., zero). A decoding
method and system checks a received data block for erroneous symbols, maps each
received, encoded symbol to an associated ECC-encoded transform pair. The ECC encoded
data may be decoded and corrected using the ECC and the locations of identified
erroneous symbols. Finally, the corrected data sequence is converted from the second
base back to the first base, from which the original data is retrieved.