1. A method of decoding a non-binary Low Density Parity Check (LDPC) code, the method comprising: receiving a plurality of messages and hard-deciding all messages except for one message; and combining the hard-decided values with the one message that is not hard-decided, to update a final output message.