자바 공부한지 몇일밖에 안됬는데여,,,,,
저기 제목에 써놓은 식을 자바로 표현해보려고 해서
{ long a = 0;
long b = 1;
while (b<101)
{ a += a + b;
b = b+1;
}
System.out.println(a);
}
이렇게 하니까
계속 -102 라고 출력 되는데
제가 뭐 잘못 했나여?ㅠ
저기 제목에 써놓은 식을 자바로 표현해보려고 해서
{ long a = 0;
long b = 1;
while (b<101)
{ a += a + b;
b = b+1;
}
System.out.println(a);
}
이렇게 하니까
계속 -102 라고 출력 되는데
제가 뭐 잘못 했나여?ㅠ
자바 시러서 패스 [핡]
뭐시여 이게.... [i]
이런 오버 플로어 문제로 인해 사망사고가 발생하고 로켓이 자폭하고 그랫엇지
이게다 자바때문이다
정수형 변수 long 이 제일 큰거 아닌가여?
오버플로어가 머져? ㅠㅠ
구뤠? \'-\'
0->(0)+(0)+1->((0)+(0)+1)+((0)+(0)+1)+2->((0)+(0)+1)+((0)+(0)+1)+2+((0)+(0)+1)+((0)+(0)+1)+2+3
a, b의 값의 변화를 표로 그려보길 추천함
0L 1L
이게 왜 오버플로우 발생함? 지금 한번 해봤는데 최종 값은 171700 아님? 난 int형으로 했는데;;
작성자가 프로그래밍한 코드:
http://db.tt/rbzH8k3l
작성자가 프로그래밍 하고 싶었던 코드:
http://db.tt/nSkEIlqQ
이건 코드가 아니지..
의 수학적 해석을 심심해서.....
그냥 오버 플로우를 보여드릴려고....^^;;
BigInteger도 있고 BigDecimal도 있고...