Какие преобразования типов НЕ выполняются автоматически (возможно, несколько вариантов):
Из short
в int
Из int
в short
Из boolean
в int
Из byte
в float
Автоматически не выполняются следующие преобразования:
Из int
в short
Из boolean
в int
Что будет выведено на консоль в результате выполнения следующей программы и почему?
public class Program { public static void main(String[] args) { short shortNum = 257; byte byteNum = (byte)shortNum; System.out.println(byteNum); } }
Программа выведет на консоль число 1.
Число 257, которое хранится в переменной типа short, в двоичном представлении будет равно 0000000100000001
.
Пр преобразовании к типу byte это число сокращается до разрядности типа byte, то есть до 8 разрядов. Поэтому левые 8 разрядов отбрасываются и
получается число 00000001
, то есть в десятичной системе число 1.