๋ฐ์ํ
int ํ์ ๋ฒ์๋ ์ฝ -21์ต๋ถํฐ ~ 21์ต ๊น์ง ์ด๋ค.
๋ง์ฝ์ ์๋์ ๊ฒฝ์ฐ์ ํ๊ท ์ ๊ตฌํ๋ฉด ์ด๋ค ๊ฐ์ด ๋์ฌ๊น? (์กฐ๊ฑด, num1๊ณผ num2๋ ๊ฐ ๊ฐ intํ์ ์ต๋๊ฐ์ ๋๊ธฐ์ง ์๋๋ค.)
int num1 = 2_100_000_000;
int num2 = 2_100_000_000;
int avg = (num1 + num2) / 2;
System.out.println("ํ๊ท ๊ฐ : " + avg);
์คํ ๊ฒฐ๊ณผ
-47,483,648 // ์ฐ๋ ๊ธฐ ๊ฐ์ด ๋์ค๊ฒ ๋๋ค.(์ค๋ฒํ๋ก์ฐ)
๊ธฐ๋ ํ๋ ๊ฐ์ 20์ต์ด์ง๋ง, 21์ต์ ๋์ด๊ฐ๋ฉด์ ์ค๋ฒํ๋ก์ฐ๊ฐ ๋ฐ์ํด์ -147.. ๊ฐ์ด ๋์ค๊ฒ ๋๋ ๊ฒ์ด๋ค.
๊ทธ๋ ๋ค๋ฉด, ์ด๋ฅผ ๋ฐฉ์งํ ํ๊ท ๊ตฌํ๋ ๋ฐฉ๋ฒ์ ?
int num1 = 2_100_000_000;
int num2 = 2_100_000_000;
int avg = num1 - (num1 - num2) / 2;
System.out.println(avg);
์คํ๊ฒฐ๊ณผ
2,100,000,000
์๋ฆฌ๋?
์ฒซ๋ฒ์งธ ์์์ ์ฒซ๋ฒ์งธ ์์ ๋๋ฒ์งธ ์๋ฅผ ๋นผ๊ณ 2๋ก ๋๋ ๊ฐ์ ๋นผ์ฃผ๋ฉด ๋๋ค.
ํ์ด์ ์ฐ๋ฉด ๊ฐ ์ซ์๋ฅผ 2๋ก ๋๋ ๋ค์ ๋ํด์ฃผ๋ฉด ๋๋ค.
๋ฐ์ํ