A storage device comprising: a nonvolatile memory device including a plurality of pages, each of the plurality of pages including a plurality of multi-level memory cells; and a controller configured to receive first write data expressed by m bits, configured to take any of 2 m states, from an external host device, wherein m is an integer greater than 1, shape the first write data to second write data in a first operating mode and thereby decreasing the number of possible states the first write data may take, the second write data is therefore configured to take any of "k" states, which are less than the 2 m states, wherein k is an integer greater than 2, wherein the second write data include a value expressed by n-ary numbers, and n is an integer greater than 2, and wherein each of the n-ary numbers is expressed by two or more bits, and store mapping information between patterns of the first write data and patterns of the second write data in a table, and shape the first write data to the second write data by using the table when the first write data are received, and perform first binary error correction encoding on the second write data to generate third write data configured to take any of "k" states, and transmit the third write data to the nonvolatile memory device for writing at a selected page from the plurality of pages, wherein the controller is furthermore configured to receive a read request from the external host device, read first read data configured to take any of "k" states from a selected page from the plurality of pages of the nonvolatile memory device in response to the read request, wherein k is an integer greater than 2, perform error correction decoding on the first read data to generate second read data expressed by the "k" states, shape the second read data to third read data expressed by m bits, configured to take any of 2 m states greater in number than the "k" states, wherein m is an integer greater than 1, and thereby increasing the number of possible states the third read data may take and output the third read data to the external host device. a nonvolatile memory device including a plurality of pages, each of the plurality of pages including a plurality of multi-level memory cells; and a controller configured to receive first write data expressed by m bits, configured to take any of 2 m states, from an external host device, wherein m is an integer greater than 1, shape the first write data to second write data in a first operating mode and thereby decreasing the number of possible states the first write data may take, the second write data is therefore configured to take any of "k" states, which are less than the 2 m states, wherein k is an integer greater than 2, wherein the second write data include a value expressed by n-ary numbers, and n is an integer greater than 2, and wherein each of the n-ary numbers is expressed by two or more bits, and store mapping information between patterns of the first write data and patterns of the second write data in a table, and shape the first write data to the second write data by using the table when the first write data are received, and perform first binary error correction encoding on the second write data to generate third write data configured to take any of "k" states, and transmit the third write data to the nonvolatile memory device for writing at a selected page from the plurality of pages, wherein the controller is furthermore configured to receive a read request from the external host device, read first read data configured to take any of "k" states from a selected page from the plurality of pages of the nonvolatile memory device in response to the read request, wherein k is an integer greater than 2, perform error correction decoding on the first read data to generate second read data expressed by the "k" states, shape the second read data to third read data expressed by m bits, configured to take any of 2 m states greater in number than the "k" states, wherein m is an integer greater than 1, and thereby increasing the number of possible states the third read data may take and output the third read data to the external host device.