month_pay랑 mon 둘 다 int 범위 안이라 오류가 안생겨야할거같은데 이해가 가질 않습니다 ㅠㅠ
댓글 13
int * int의 결과는 int형으로 처리댐
익명(59.22)2020-10-08 13:58
답글
20000 * 250000시점에서 오버플로 나서 ㅈ댄거
익명(59.22)2020-10-08 13:59
답글
아 total을 long long으로 해놨는데도 문제가생겨요? 정말 감사합니다
익명(119.197)2020-10-08 14:00
형변환 하기 전에 결과값이 나오지 않겠노?
익명(121.142)2020-10-08 13:59
int * int = int 라 앞에 32비트만 짤라서
익명(220.86)2020-10-08 14:02
답글
혹시 int*short 나 int*long long하면 더 큰 자료형으로 처리되나요?
익명(119.197)2020-10-08 14:05
답글
int * long long 하면 long long이 int 로 자동 형변환 될거 같은데 그냥 명시적으로 (long long) 을 붙여
익명(220.86)2020-10-08 14:07
해당 댓글은 삭제되었습니다.
해당 댓글은 삭제되었습니다.2026-08-05 21:05
답글
아 오른쪽 먼저 계산이었지.. 감사합니다
익명(119.197)2020-10-08 14:04
int main(){ int month_pay; int mon; long long total; month_pay = 200000; mon = 250000; total = ((long long)month_pay *(long long)mon); printf("Total = %lld \n", total);}
123123(118.220)2020-10-08 14:11
답글
오홍 괄호치고 그러면 되는군요 감사합니다!!
익명(119.197)2020-10-08 14:13
int 랑 long long이랑 연산하면 int가 자동으로 long long으로 자동 형변환 됨. 그러니 처음 long long으로 계산할떄는 int가 long long으로 자동으로 변했기 때문에 계산이 되었던것. 둘다 int로 하면 형변환이 안되니까 계산이 안되고. 따라서 변수 타입long long으로 받을수 있게 하려면 둘중 하나 이상이 long long이여야함
int * int의 결과는 int형으로 처리댐
20000 * 250000시점에서 오버플로 나서 ㅈ댄거
아 total을 long long으로 해놨는데도 문제가생겨요? 정말 감사합니다
형변환 하기 전에 결과값이 나오지 않겠노?
int * int = int 라 앞에 32비트만 짤라서
혹시 int*short 나 int*long long하면 더 큰 자료형으로 처리되나요?
int * long long 하면 long long이 int 로 자동 형변환 될거 같은데 그냥 명시적으로 (long long) 을 붙여
해당 댓글은 삭제되었습니다.
아 오른쪽 먼저 계산이었지.. 감사합니다
int main(){ int month_pay; int mon; long long total; month_pay = 200000; mon = 250000; total = ((long long)month_pay *(long long)mon); printf("Total = %lld \n", total);}
오홍 괄호치고 그러면 되는군요 감사합니다!!
int 랑 long long이랑 연산하면 int가 자동으로 long long으로 자동 형변환 됨. 그러니 처음 long long으로 계산할떄는 int가 long long으로 자동으로 변했기 때문에 계산이 되었던것. 둘다 int로 하면 형변환이 안되니까 계산이 안되고. 따라서 변수 타입long long으로 받을수 있게 하려면 둘중 하나 이상이 long long이여야함
감사합니다 많이 배워갑니다