Это когда вы переводите один тип переменной в другой тип.
Например, в переменную типа
byte на 8 бит не получится запихнуть значение типа ushort на 16 бит или вообще int на 32.Логично? Логично 🌚
Так вот при тайпкасте производится сужение или же расширение конвертируемых значений.
В программировании это также называется narrowing и widening conversions.
И таким образом, в случае расширяющего преобразования, значение 4 типа
byte будет представлено как 00000100 в двоичной системе.Оно же после расширения в
ushort будет выглядеть как 0000000000000100.Значение расширилось до
16 бит (разрядов).Однако эти операции также делятся на явные (explicit) и неявные (implicit).
Так вот в случае неявных расширяющих преобразований (implicit widening conversion), всё предельно ясно и просто.
Компилятор за нас всё перекидывал, лишь расширяя разряды.
Причем для беззнаковых типов данных меньшей разрядности к беззнаковому типу большей разрядности, он лишь добавлял биты со значением 0.
Логично?
