public class Test {
public static void main(String args[]) {
byte a = 1;
byte b = ++a;
byte c = -a;
System.out.print(a);
System.out.print(b);
System.out.print(c);
}
}
поскольку результат выражения -a имеет тип int, несмотря на то, что операнд имеет тип byte. Это необходимо для предотвращения возможной потери точности. Например, при a=-128 полученное значение выходит за диапазон byte.
При выполнении операций инкремента/декремента подобные преобразования не осуществляются, поэтому, например, при a=127 значением выражения ++a будет -128.
Войдите чтобы поставить Нравится
Войдите чтобы прокомментировать