Whenever any one of these variables is changed, data must be converted in some way before it can be used by a different computer, operating system or program.
For example, the changing of bits from one format to another, usually for the purpose of application interoperability or of the capability of using new features, is merely a data conversion.
Before any data conversion is carried out, the user or application programmer should keep a few basics of computing and information theory in mind.
These include: For example, a true color image can easily be converted to grayscale, while the opposite conversion is a painstaking process.
Converting a Unix text file to a Microsoft (DOS/Windows) text file involves adding characters, but this does not increase the entropy since it is rule-based; whereas the addition of color information to a grayscale image cannot be reliably done programmatically, as it requires adding new information, so any attempt to add color would require estimation by the computer based on previous knowledge.
Converting an image or audio file in a lossy format (like JPEG or Vorbis) to a lossless (like PNG or FLAC) or uncompressed (like BMP or WAV) format only wastes space, since the same image with its loss of original information (the artifacts of lossy compression) becomes the target.
Automatic restoration of information that was lost through a lossy compression process would probably require important advances in artificial intelligence.
Because of these realities of computing and information theory, data conversion is often a complex and error-prone process that requires the help of experts.
Of course, this is not an optimal solution, and can impact operations like searching and copying; and if a language makes a distinction between ä and ae, then that approximation does involve loss of information.
As another example, converting from PDF to an editable word processor format is a tough chore, because PDF records the textual information like engraving on stone, with each character given a fixed position and linebreaks hard-coded, whereas word processor formats accommodate text reflow.
Reverse engineering can achieve close approximation of the original specifications, but errors and missing features can still result.