Рекомендуем, 2024

Выбор редакции

Разница между приведением типов и преобразованием типов

Два термина «приведение типов» и «преобразование типов» имеют место, когда необходимо преобразовать один тип данных в другой. Когда два типа совместимы друг с другом, преобразование одного типа в другой выполняется автоматически компилятором. Однако существует принципиальная разница между преобразованием типов и приведением типов, то есть преобразование типов выполняется «автоматически» компилятором, тогда как приведение типов должно «явно выполняться» программистом. Давайте обсудим разницу между приведением типов и преобразованием с помощью сравнительной таблицы.

Сравнительная таблица:

Основа для сравненияТип литьяПреобразование типов
Имея в видуОдин тип данных назначается другому пользователем с помощью оператора приведения, тогда он называется «Приведение типов».Преобразование одного типа данных в другой автоматически с помощью компилятора называется «Преобразование типов».
прикладнойПриведение типов также может применяться к двум «несовместимым» типам данных.Преобразование типов может быть реализовано только тогда, когда два типа данных являются «совместимыми».
операторДля приведения типа данных к другому требуется оператор приведения «()».Оператор не требуется.
Размер типов данныхТип назначения может быть меньше, чем тип источника.Здесь тип назначения должен быть больше, чем тип источника.
РеализованЭто делается во время разработки программы.Это делается явно при компиляции.
Тип конверсии
Сужение конверсии.Расширяется конверсия.
примерint a;
байт b;
...
...
б = (байт) а;
int a = 3;
плавать б;
B = A; // значение в b = 3.000.

Определение типа литья

Приведение типов может быть определено как приведение одного типа данных к другому типу данных программистом во время разработки программы. Автоматическое преобразование одного типа данных в другой невозможно все время. Может быть условие, что «тип назначения» меньше, чем «тип источника», поэтому программист должен явно преобразовать больший тип данных в меньший тип данных с помощью оператора приведения «()». Поскольку больший тип данных модулируется к меньшему типу данных, это также называется «сужающим преобразованием».

Декларация:

 destination_type = (target_type) variable / value // target type - это тип, в который вы хотите преобразовать тип источника, это всегда тип назначения. 

Давайте разберемся с этим на примере. Вы хотите преобразовать тип данных «int» в «byte», теперь, поскольку «byte» меньше, чем «int», преобразование типов не допускается. Здесь мы должны были неявно преобразовать int в byte, используя оператор приведения «()». Так как int больше байта, размер int будет уменьшен до диапазона байтов int mod.

 int a; байт b; ... ... b = (byte) a; 

Когда «float» преобразуется в «int», размер float усекается, так как «int» не сохраняет дробное значение. Если размер целевого типа слишком мал для исходного типа, то тип источника по модулю целевого типа «диапазон». Преобразование может также применяться, когда типы данных совместимы, рекомендуется использовать приведение типов везде, где необходимо преобразование типов.

Определение преобразования типа

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

  • Тип источника и назначения должен быть совместимым.
  • Тип назначения должен быть больше, чем тип источника.

Эти два условия должны удовлетворять достижению преобразования типов, и этот тип преобразования называется «расширяющим преобразованием», так как меньший тип преобразуется в больший тип, происходит расширение типа. Для этого расширяющегося преобразования числовые типы, такие как 'int', 'float', совместимы друг с другом, в то время как числовые в char и логические или char в логические также не совместимы.

Этот пример обеспечит лучшее представление об этом

 int a = 3; плавать б; B = A; // значение в b = 3.000. 

Здесь 'int' преобразуется в 'float', который больше, чем 'int', поэтому происходит расширение типа источника. Здесь не требуется оператор приведения, поскольку компилятор сделает это явно.

Ключевые различия между приведением типов и преобразованием

  1. Основное отличие, которое отличает приведение типов от преобразования типов, состоит в том, что приведение типов - это преобразование одного типа в другой, выполняемое программистом. С другой стороны, преобразование типов - это преобразование одного типа в другой, выполняемое компилятором во время компиляции.
  2. Приведение типов может применяться к типам данных, которые могут быть несовместимы друг с другом, но преобразование типов может применяться только к типам данных, которые совместимы друг с другом.
  3. Преобразование одного типа в другой при приведении типов требует оператора приведения «()», тогда как преобразование одного типа данных в другой при преобразовании типов не требует какого-либо оператора.
  4. При преобразовании одного типа данных в другой при приведении типа тип назначения может быть больше или меньше, чем тип источника. С другой стороны, тип назначения должен быть больше, чем тип источника при преобразовании типов.
  5. Преобразование одного типа в другой тип выполняется во время кодирования при приведении типов, тогда как при преобразовании типов преобразование одного типа в другой выполняется явно во время компиляции.
  6. Приведение типов называется сужающим преобразованием, потому что здесь тип назначения может быть меньше, чем исходный тип, тогда как преобразование типов называется расширяющим преобразованием, потому что здесь тип назначения должен быть больше, чем тип источника.

Заключение:

Можно сделать вывод, что преобразование типов и приведение типов, оба выполняют задачу преобразования одного типа данных в другой, но отличаются в том смысле, что приведение типов выполняется программистом с использованием оператора приведения «()», а преобразование типов выполняется компилятор, и он не использует оператор.

Top