int
์ผ๋ถ ์ ํ ๊ฐ์ type short
๋๋ ์ ์บ์คํ
ํ๋ฉด byte
๊ฒฐ๊ณผ๊ฐ ์์์น ๋ชปํ ์ด์ ๋ ๋ฌด์์
๋๊น ? ์์ ๋ณด์!
int i = 450;
byte b = (byte)i;
System.out.println(b);
ํ๋ฉด ๊ฒฐ๊ณผ:
-62
์์ธ๋ก ์ด์ ๋ํ ๋
ผ๋ฆฌ์ ์ค๋ช
์ด ์์ผ๋ฉฐ, ๊ฒ๋ค๊ฐ ์ด ์์
์ ์์ ์ ์์ผ๋ก ์ํํ ์ ์์ต๋๋ค. ์ด๋ ๊ฒ ํ๋ ค๋ฉด 450์ 10์ง์์์ 2์ง์๋ก ๋ณํํด์ผ ํฉ๋๋ค.
450/2. 0
225/2. 1
112/2. 0
56/2. 0
28/2. 0
14/2. 0
7/2. 1
3/2. 1
1/2. 1
์ซ์์ ์ค๋ฅธ์ชฝ ์ด์๋ 2๋ก ๋๋ ๋๋จธ์ง๋ฅผ ๊ธฐ๋กํ๊ณ ๋๋จธ์ง๊ฐ 0์ธ ๊ฒฝ์ฐ ์ซ์ ์์ฒด๋ฅผ 2๋ก ๋๋ ๊ฒฐ๊ณผ๋ฅผ ๊ธฐ๋กํฉ๋๋ค. ๋๋จธ์ง๊ฐ 1์ด๋ฉด ์๋์ ๋ค์์ ์๋๋ค. 2๋ก ๋๋ ์ ์ ๋ถ๋ถ์
๋๋ค. ( ๊ณ์ฐ ์ค๋ช
์ด ํฌํจ๋ ์จ๋ผ์ธ ๊ณ์ฐ๊ธฐ ). ๊ฒฐ๊ณผ์ ์ผ๋ก ์ฐ๋ฆฌ๋ ์ด์ง์ ์ฒด๊ณ 450 = ์์ ์ด๋ฅผ ์ป์ต๋๋ค 11100 0010
. ๋ชจ๋ ์ ํ ๋ฒํธ๋ int
4๋ฐ์ดํธ ๋๋ 32๋นํธ๋ฅผ ์ฐจ์งํ๋ฉฐ ๊ฐ ๋นํธ๋ 0 ๋๋ 1์
๋๋ค. ์ฐ๋ฆฌ์ ๊ฒฝ์ฐ 9๋นํธ๋ง ์ฐจ์งํ๋ฉฐ ์์น์ ์ผ๋ก int i = 450
์ด์ง ์์คํ
์์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
0000_0000_0000_0000_0000_0001_1100_0010
์ฐ๋ฆฌ๋ ๋ณ์๋ฅผ ์ ํ์ ๋ณ์์ ์ฐ๊ณ ์ถ์ง๋ง byte
์ ํ ๋ฒํธ๋ byte
1๋ฐ์ดํธ(์ด ์ ํ์ ์ด๋ฆ์์ ๋ฐ์ด) ๋๋ 8๋นํธ๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๋ฐ๋ผ์ ์ผ์ชฝ์ ์ถ๊ฐ ๋นํธ๋ ๋จ์ํ ๋ฒ๋ ค์ง๊ณ ๊ฒฐ๊ตญ ๋ค์์ ์ป์ต๋๋ค.
1100 0010
์ ํ ๊ฐ ๋ฒ์ byte
: -128 ~ 127. ๊ฐ ์ซ์๋ 8๋นํธ๋ฅผ ์ฐจ์งํ๋ฉฐ ๊ฐ ์ซ์์ ๊ฐ์ฅ ์ผ์ชฝ ๋นํธ๋ ๋ถํธ ๋นํธ์
๋๋ค. ๋ชจ๋ ์์์ ๊ฒฝ์ฐ 0๊ณผ ๊ฐ๊ณ ๋ชจ๋ ์์์ ๊ฒฝ์ฐ 1๊ณผ ๊ฐ์ต๋๋ค. ์์์ ์ป์ ๊ฒฐ๊ณผ๋ฅผ 10๋ฒ์งธ ์์คํ
์ผ๋ก ๋ณํํ๊ธฐ ์ํด ์๋๋ฅผ ํ์๊ฐ ์์ต๋๋ค. ์ง์ ์ฝ๋๊ฐ ์๋ ์ํ๋ ๋ฒํธ์ ๋ํ ์ถ๊ฐ ์ฝ๋๋ฅผ ๋ฐ์์ต๋๋ค . ๊ฐ์ฅ ์ผ์ชฝ ๋นํธ๋ 1๊ณผ ๊ฐ์ผ๋ฏ๋ก ์ซ์๋ ์์์ด๊ณ ์์์ ๊ฒฝ์ฐ ์์์ ๋ฌ๋ฆฌ ์ง์ ์ฝ๋์ ์ญ๋ฐฉํฅ ์ฝ๋๊ฐ ์ผ์นํ์ง ์์ต๋๋ค. ๋ถํธ ๋นํธ๊ฐ 0์ด๋ฉด ์ฆ์ ์ซ์๋ฅผ ์ญ์ง์ ์ฒด๊ณ๋ก ๋ณํํ์ฌ 66์ ์ป์ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ถํธ ๋นํธ๋ ์์์ด๋ฏ๋ก ๋จผ์ ์ถ๊ฐ ์ฝ๋๋ฅผ ์ง์ ์ฝ๋๋ก ๋ณํ ํ๊ณ ๋นผ๊ธฐ๋ฅผ ์ถ๊ฐ ํด์ผ ํฉ๋๋ค. ๋ต๋ณ์ ์๋ช
ํ์ธ์. ๋ช
ํ์ฑ๊ณผ ๊ต์ก์ ์ํด ๋จผ์ -15์ ๊ฐ์ ์ซ์์ ์ถ๊ฐ ์ฝ๋๋ฅผ ๊ฐ์ ธ์ ๋ณด๊ฒ ์ต๋๋ค. ์ด๋ ๊ฒ ํ๋ ค๋ฉด ์์ ํํ(์ซ์ 15)์ ์ง์ ์ฝ๋์์ ๋ชจ๋ 0์ 1๋ก ๋ณ๊ฒฝํ๊ฑฐ๋ ๊ทธ ๋ฐ๋๋ก ๋ณ๊ฒฝํด์ผ ํฉ๋๋ค(์ญ๋ฐฉํฅ ์ฝ๋๋ผ๊ณ ๋ ํจ). ๊ทธ๋ฐ ๋ค์ ๊ฒฐ๊ณผ์ 1์ ์ถ๊ฐํด์ผ ํฉ๋๋ค. ์ญ์ง๋ฒ์์๋ 15 = 0000 1111
; ์ญ๋ฐฉํฅ ์ฝ๋(๋ชจ๋ 0์ 1๋ก ๋๋ ๊ทธ ๋ฐ๋๋ก ๋ณ๊ฒฝ) = 1111 0000
; ์ถ๊ฐ ์ฝ๋(ํ๋ ์ถ๊ฐ):
1 1 1 1 0 0 0 0
0 0 0 0 0 0 0 1
1 1 1 1 0 0 0 1
์ซ์ -15์ ๋ํ ์ถ๊ฐ ์ฝ๋: 1111 0001
; ์ข์ต๋๋ค. ์ด์ ์์ ์์ ์ ์ฌํ๊ฒ ์ถ๊ฐ ์ฝ๋๋ฅผ ์ง์ ์ฝ๋๋ก ๋ณํํด์ผ ํฉ๋๋ค. ์ด๋ ์ ๊ฐ์ต๋๋ค 1100 0010
.
-
ํ๋๋ฅผ ๋นผ๊ณ ์ญ์ฝ๋๋ฅผ ์ป์ผ์ธ์. ์ด๋ ๊ฒ ํ๋ ๊ฒ์ด ํธ๋ฆฌํฉ๋๋ค. ๋ต๋ณ์ ์ถ๊ฐ ์ฝ๋๋ฅผ ์ ์ด๋๊ณ ์ด๋ฌํ ์ถ๊ฐ ์ฝ๋๋ฅผ ์ป์ผ๋ ค๋ฉด ๋ฌด์์ ์ถ๊ฐํด์ผ ํ๋์ง ํ์ธํ์ธ์. ๊ฐ์ฅ ์ค๋ฅธ์ชฝ ์ซ์๋ถํฐ ์์ํด ๋ณด์ธ์. 0์ ์ป์ผ๋ ค๋ฉด ๋ฌด์์ 1์ ๋ํด์ผ ํ ๊น์? 1์ด๋ฉด 10์ ์ป๊ณ , 0์ ์๋ต์ผ๋ก ๊ฐ๊ณ , 1์ ๋ค์ ์ซ์๋ก ๊ฐ๋๋ค. ๋ค์์ผ๋ก, 1์ ์ป์ผ๋ ค๋ฉด 0์ ๋ฌด์์ ๋ํด์ผ ํ ๊น์? ํ๋์ธ๋ฐ ์์ ์ซ์์์ 1์ด ๋์์ผ๋ ์๋ต์ผ๋ก 0์ ์ฐ๊ณ , ๋ค์์ผ๋ก 0์ ์ป์ผ๋ ค๋ฉด 0์ ๋ฌด์์ ๋ํด์ผ ํ ๊น์? ๋ฌผ๋ก 0์ ๋๋ค. ๊ทธ๋ฌ๋๊น 4๋ฒ ๋์. ๊ทธ๋ฆฌ๊ณ 1์ ์ป์ผ๋ ค๋ฉด 0์ ๋ฌด์์ธ๊ฐ๋ฅผ ๋ํด์ผ ํ๋ ๋ง์ง๋ง 2์๋ฆฌ ์ซ์๊ฐ ๋จ์ ์์ต๋๋ค. ๋ฌผ๋ก ๋ ๊ฒฝ์ฐ ๋ชจ๋ 1์ ๋ํด์ผ ํฉ๋๋ค. ํฉ๊ณ:
1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 1 0
-
๊ฐ์ฅ ์ด๋ ค์ด ๋ถ๋ถ์ด ๋๋ฌ์ต๋๋ค! ์ฐ๋ฆฌ๋ ์ญ(์ญ) ์ฝ๋๋ฅผ ๋ฐ์๊ณ ์ฐ๋ฆฌ๊ฐ ํด์ผ ํ ์ผ์ ์ง์ ์ฝ๋๋ฅผ ์ป๋ ๊ฒ๋ฟ์ ๋๋ค. ์ฐ๋ฆฌ๋ ๋ชจ๋ 0์ 1๋ก ๋ฐ์ ํ๊ณ ๊ทธ ๋ฐ๋๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค.
1100 0001
- ์ญ์ฝ๋;0011 1110
- ๋ฒํธ์ ์ง์ ์ฝ๋ ๋๋ ์คํ๋ ค ๊ธ์ ์ ์ธ ํํ์ ๋๋ค. -
์ญ์ง๋ฒ์ผ๋ก ๋ณํํฉ๋๋ค( ๊ณ์ฐ ์ค๋ช ์ด ํฌํจ๋ ์จ๋ผ์ธ ๊ณ์ฐ๊ธฐ ):
0011 1110 = 0โ2^7+0โ2^6+1โ2^5+1โ2^4+1โ2^3+1โ2^2+1โ2^1+0โ2^0 = 0+0+32+16+8+4+2+0 = 62;
๋จ์ ๊ฒ์ ์ซ์์ ๋ต์ ๋ง์ด๋์ค๋ฅผ ์ถ๊ฐํ๋ ๊ฒ๋ฟ์ ๋๋ค.
-62.
short
์ ํ์ผ๋ก ๋ณํ๋ฉ๋๋ค int
.
int i = 10_000_000;
short s = (short)i;
System.out.println(s); // -27008
-
10๋ฒ์งธ ์ซ์ ์ฒด๊ณ์์๋ 10,000,000 =
0000 0000 1001 1000 1001 0110 1000 0000
2๋ฒ์งธ ์ซ์ ์ฒด๊ณ์์๋.Java์์ ์ ํ ๋ฒํธ๋
int
4๋ฐ์ดํธ๋ฅผ ์ฌ์ฉํ๊ณ ์ ํshort
๋ฒํธ๋ 2๋ฐ์ดํธ ๋๋ 16๋นํธ๋ฅผ ์ฌ์ฉํ๋ฏ๋ก ์ผ์ชฝ์ 16์๋ฆฌ๋ก ์๋ฆ ๋๋ค. -
์ด๋ฅผ ์ญ์ฝ๋๋ก ๋ฒ์ญํด ๋ณด๊ฒ ์ต๋๋ค.
1 0 0 1 0 1 1 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 1 1 0 1 0 0 0 0 0 0 0
๋ฐํ ์ฝ๋:
1001 0110 0111 1111
; -
์ฐ๋ฆฌ๋ ์ง์ ์ฝ๋๋ฅผ ๋ค์ง์ด์ ์ป์ต๋๋ค:
0110 1001 1000 0000
. -
์ฐ๋ฆฌ๋ ์ด์ง์ ์์คํ ์ผ๋ก ๋ณํํ์ฌ ์ซ์์ ์์ ํํ์ ์ป์ต๋๋ค.
1โ2^14+1โ2^13+1โ2^11+1โ2^8+1โ2^7 = 16384+8192+2048+256+128 = 27008.
-
๋ง์ด๋์ค๋ฅผ ์ถ๊ฐํ๊ณ ๋ต์ ์ป์ผ์ญ์์ค.
-27008
1001 0110 1000 0000
. ๊ฐ์ฅ ์ผ์ชฝ ๋นํธ(๋ถํธ ๋นํธ๋ผ๊ณ ๋ ์๋ ค์ง ์ต์์ ๋นํธ)๋ 1๊ณผ ๊ฐ์ ๊ฒ์ผ๋ก ๋ํ๋ฌ์ต๋๋ค. ์ด๋ ์์์ ๋ํ ์ถ๊ฐ ์ฝ๋๊ฐ ์์์ ์๋ฏธํ๋ฏ๋ก ๋ค์ ์ง์ ์ผ๋ก ๋์ด๊ฐ๋๋ค.
GO TO FULL VERSION