Conversions
A conversion always creates a new value from an existing one. Conversions can be either implicit or explicit.
Implicit conversions happen automatically, and explicit conversions require a cast.
For Implicit the compiler guarantee that it will succeed and no information is lost whereas explicit it is the opposite.