Преобразование примитивов
Автоматическое приведение типов возможно, когда выполняются два условия:
— оба типа совместимы;
— размер исходного типа меньше размера типа, который хотим получить.
Числовые типы: целочисленные и с плавающей точкой, совместимы друг с другом. Но не существует автоматического преобразования числовых типов в тип
Так как целочисленные константы по дефолту
Во время вычислений происходит повышение типа.
— Тип всех значений
— Если один операнд имеет тип
Пример:
Примеры явного приведения:
Прочитать:
— 3 главу у Шилдта. Типы данных, переменные и массивы
— Подробная статья о преобразовании примитивов
https://bit.ly/2NYFxcr
Автоматическое приведение типов возможно, когда выполняются два условия:
— оба типа совместимы;
— размер исходного типа меньше размера типа, который хотим получить.
Числовые типы: целочисленные и с плавающей точкой, совместимы друг с другом. Но не существует автоматического преобразования числовых типов в тип
char
и boolean
. Так как целочисленные константы по дефолту
int
, то Джава выполняет автоматическое преобразование типов при их сохранении в переменные типа byte
, short
, long
или char
. Пример:byte b = 127;
Во время вычислений происходит повышение типа.
— Тип всех значений
byte
, short
, char
повышается до int
.— Если один операнд имеет тип
long
, тип всего выражения повышается до long
. Если один операнд имеет тип float
, тип всего выражения повышается до float
. Если один операнд имеет тип double
, тип всего выражения повышается до double
. Сокращенно:int -> long -> float -> double
Пример:
byte b = 1;
b = b * 2; // compile error
int i = b * 2; // ok
Примеры явного приведения:
byte b = (byte) 300;
0000 0001 0010 1100 -> 0010 1100
byte b = (byte) 128;
0000 0000 1000 0000 -> 1000 0000
Прочитать:
— 3 главу у Шилдта. Типы данных, переменные и массивы
— Подробная статья о преобразовании примитивов
https://bit.ly/2NYFxcr