나 좀 이해시켜 줄 고수분 없나여 ㅠㅠㅠㅠㅠㅠㅠㅠ
byte a = 127 * 2;를 프린트하면 오류가 나는데
int b = 270000000 * 10;을 프린트하면 오류가 안 나고 쓰레기값이 나오는 이유
즉 둘 다 오버플로인데 하나는 오류, 다른 하나는 오류가 아닌 이유
참고로
byte x = 1;
byte y = 2;
byte z = x * y; 이런 거라면 byte변수 * byte 변수가 int 변수 * int 변수로 바껴서 byte z에 못 담아서 오류가 나는 건 알고 있는데
byte k = 3 * 4; 이렇게 숫자 * 숫자는 int로 안 바뀌고 오류도 안 나는 거로 알고 있거든
그래서
byte a = 127 * 2;도 int로 자동형변환되지 않고 단순히 범위만 초과하는 거 아냐?
즉
byte a = 127 * 2; 이게 오류면 int b = 270000000 * 10;도 오류고
byte a = 127 * 2; 이게 오류가 아니면 int b = 270000000 * 10;도 오류가 안 나야 하지 않나...
님들이 생각해도 이상한 것 같아 아니면 내가 뭔가 잘못알고 있다면
설명좀 해주라...
자꾸 이 질문만 해서 정말 미안함
오버플로우 자나
ㅇㅇ 근데 byte a = 127 * 2;이거랑 int b = 270000000 * 10;
둘 다 오버플로우인데 하나는 오류고 하나는 오류가 안나서