Я задачу решил, но не понимаю почему если число выходящее за рамки размеров привести к byte оно станет отрицательным?
float f = (float) 128.50;
int i = (byte) f;