a reading method of a semiconductor memory device having a multi - level memory cell includes the steps of : reading flag data indicating whether the most significant bit of data programmed in the multi - level memory cell is programmed or not ; storing the read flag data ; reading the least significant bit of the data programmed in the multi - level memory cell , based on the read flag data ; and reading the msb of the data programmed in the multi - level memory cell based on the stored flag data .