Перейти к содержанию

Преобразование типов

Преобразование типов — очень важная часть типизированного мира.

Преобразование типов (type conversion, typecasting) — это процесс преобразования значения одного типа в значение другого типа.

Преобразование типов делятся на явные и неявные преобразования.

Неявные преобразования

Неявные преобразования не требуют никаких языковых конструкций и не приводят к утрате данных.

Примером неявного преобразования может служить преобразование значения типа int в тип double. Являясь 64-битным вещественным типом, double может хранить любое значение 32-битного целочисленного типа int.

Неявные преобразования

Как показано на изображении выше, преобразование int в double не приводит к потере данных, так как 32-битное значение умещается в 64 битах.

Явные преобразования

Явные преобразования, которые для ясности часто называют приведением типов, описываются разработчиком и требуют указания языковых конструкций, называемых операторами приведения. Приведение типов требуется тогда, когда в процессе преобразования данные могут быть утрачены или по каким-то причинам процесс может завершиться ошибкой.

Самым простым примером явного преобразования служит преобразование типа double, используемого для хранения 64-битных значений с плавающей запятой, к целочисленному типу int.

Явные преобразования

Изображение выше демонстрирует потерю данных при преобразовании 64-битного типа double к 32-битному типу int.

Итоги

  • Преобразование типов — это процесс преобразования значения одного типа в значение другого типа.
  • Случаи, в которых требуется явное преобразование, приводят к потере данных и могут завершится ошибкой.
  • Явное преобразование типов осуществляются разработчиком и требуют указания операторов приведения.
  • Явное преобразование типов для большей ясности называют приведением типов.
  • В случае неявных преобразований языковые конструкции не требуются и потери данных не происходят.