Как переводится (обрезается) int до размера byte? Где-то вычитал, что от int отнимается 128 пока число не войдет в диапазон -128...127 и потом отнимается еще раз. То есть во втором примере мы зашли в диапазон (104) и отняли 128 еще раз, до значения -24; а в первом примере мы зашли в диапазон (1) и остановились. Почему так?
int a = (byte)257;
Вывод: a = 1;
int b = (byte)1000;
Вывод: b = -24;
Тип byte, как и любой другой тип, "проходит" по кругу. Пример:
int a = (byte) 127;
127
int a = (byte) 128;
-128
int a = (byte) 129;
-127
...
int a = (byte) 257;
1
Таким образом, когда бы дойдете до 1000, что после N кругов в результат вернут -24.
Продвижение своими сайтами как стратегия роста и независимости