Even though the precision is lost, you can implicitly convert between numerical types:
char c = i;
However, to avoid potentially lossy conversions like these, you might want to activate compiler warnings.
If that's the case, the conversion should be done with static cast.
The rest of the cast includes:
dynamic cast can only convert between pointers or references to polymorphic class types; const cast can only modify const or volatile qualifiers; and reinterpret cast can only convert between pointers or references to wholly unrelated types in specific circumstances. It will not, for example, perform numeric conversions.
Static cast, const cast, and reinterpret cast are used in a combination of C-style and function-style casts to get the task done.