JavaRush /Java Blog /Random-KO /๊ธฐ๋ณธ ์œ ํ˜• ์บ์ŠคํŒ…. int๋ฅผ short ๋ฐ byte๋กœ ์บ์ŠคํŒ…
ะ“ะตะพั€ะณะธะน
๋ ˆ๋ฒจ 22
ะกะฐะฝะบั‚-ะŸะตั‚ะตั€ะฑัƒั€ะณ

๊ธฐ๋ณธ ์œ ํ˜• ์บ์ŠคํŒ…. int๋ฅผ short ๋ฐ byte๋กœ ์บ์ŠคํŒ…

Random-KO ๊ทธ๋ฃน์— ๊ฒŒ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค
๊ธฐ๋ณธ ์œ ํ˜• ์บ์ŠคํŒ….  int๋ฅผ short ๋ฐ byte๋กœ ์บ์ŠคํŒ… - 1int์ผ๋ถ€ ์œ ํ˜• ๊ฐ’์„ 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. ๋ชจ๋“  ์œ ํ˜• ๋ฒˆํ˜ธ๋Š” int4๋ฐ”์ดํŠธ ๋˜๋Š” 32๋น„ํŠธ๋ฅผ ์ฐจ์ง€ํ•˜๋ฉฐ ๊ฐ ๋น„ํŠธ๋Š” 0 ๋˜๋Š” 1์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ์˜ ๊ฒฝ์šฐ 9๋น„ํŠธ๋งŒ ์ฐจ์ง€ํ•˜๋ฉฐ ์›์น™์ ์œผ๋กœ int i = 450์ด์ง„ ์‹œ์Šคํ…œ์—์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

0000_0000_0000_0000_0000_0001_1100_0010
์šฐ๋ฆฌ๋Š” ๋ณ€์ˆ˜๋ฅผ ์œ ํ˜•์˜ ๋ณ€์ˆ˜์— ์“ฐ๊ณ  ์‹ถ์ง€๋งŒ byte์œ ํ˜• ๋ฒˆํ˜ธ๋Š” byte1๋ฐ”์ดํŠธ(์ด ์œ ํ˜•์˜ ์ด๋ฆ„์—์„œ ๋”ฐ์˜ด) ๋˜๋Š” 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.
  1. ํ•˜๋‚˜๋ฅผ ๋นผ๊ณ  ์—ญ์ฝ”๋“œ๋ฅผ ์–ป์œผ์„ธ์š”. ์ด๋ ‡๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ด ํŽธ๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ๋‹ต๋ณ€์— ์ถ”๊ฐ€ ์ฝ”๋“œ๋ฅผ ์ ์–ด๋‘๊ณ  ์ด๋Ÿฌํ•œ ์ถ”๊ฐ€ ์ฝ”๋“œ๋ฅผ ์–ป์œผ๋ ค๋ฉด ๋ฌด์—‡์„ ์ถ”๊ฐ€ํ•ด์•ผ ํ•˜๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”. ๊ฐ€์žฅ ์˜ค๋ฅธ์ชฝ ์ˆซ์ž๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด ๋ณด์„ธ์š”. 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
  2. ๊ฐ€์žฅ ์–ด๋ ค์šด ๋ถ€๋ถ„์ด ๋๋‚ฌ์Šต๋‹ˆ๋‹ค! ์šฐ๋ฆฌ๋Š” ์—ญ(์—ญ) ์ฝ”๋“œ๋ฅผ ๋ฐ›์•˜๊ณ  ์šฐ๋ฆฌ๊ฐ€ ํ•ด์•ผ ํ•  ์ผ์€ ์ง์ ‘ ์ฝ”๋“œ๋ฅผ ์–ป๋Š” ๊ฒƒ๋ฟ์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋ชจ๋“  0์„ 1๋กœ ๋ฐ˜์ „ํ•˜๊ณ  ๊ทธ ๋ฐ˜๋Œ€๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค.

    1100 0001- ์—ญ์ฝ”๋“œ;

    0011 1110 - ๋ฒˆํ˜ธ์˜ ์ง์ ‘ ์ฝ”๋“œ ๋˜๋Š” ์˜คํžˆ๋ ค ๊ธ์ •์ ์ธ ํ‘œํ˜„์ž…๋‹ˆ๋‹ค.

  3. ์‹ญ์ง„๋ฒ•์œผ๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค( ๊ณ„์‚ฐ ์„ค๋ช…์ด ํฌํ•จ๋œ ์˜จ๋ผ์ธ ๊ณ„์‚ฐ๊ธฐ ):

    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
  1. 10๋ฒˆ์งธ ์ˆซ์ž ์ฒด๊ณ„์—์„œ๋Š” 10,000,000 = 0000 0000 1001 1000 1001 0110 1000 00002๋ฒˆ์งธ ์ˆซ์ž ์ฒด๊ณ„์—์„œ๋Š”.

    Java์—์„œ ์œ ํ˜• ๋ฒˆํ˜ธ๋Š” int4๋ฐ”์ดํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์œ ํ˜• short๋ฒˆํ˜ธ๋Š” 2๋ฐ”์ดํŠธ ๋˜๋Š” 16๋น„ํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ์™ผ์ชฝ์„ 16์ž๋ฆฌ๋กœ ์ž๋ฆ…๋‹ˆ๋‹ค.

  2. 1001 0110 1000 0000. ๊ฐ€์žฅ ์™ผ์ชฝ ๋น„ํŠธ(๋ถ€ํ˜ธ ๋น„ํŠธ๋ผ๊ณ ๋„ ์•Œ๋ ค์ง„ ์ตœ์ƒ์œ„ ๋น„ํŠธ)๋Š” 1๊ณผ ๊ฐ™์€ ๊ฒƒ์œผ๋กœ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์Œ์ˆ˜์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ์ฝ”๋“œ๊ฐ€ ์žˆ์Œ์„ ์˜๋ฏธํ•˜๋ฏ€๋กœ ๋‹ค์Œ ์ง€์ ์œผ๋กœ ๋„˜์–ด๊ฐ‘๋‹ˆ๋‹ค.
  3. ์ด๋ฅผ ์—ญ์ฝ”๋“œ๋กœ ๋ฒˆ์—ญํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

    
    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;

  4. ์šฐ๋ฆฌ๋Š” ์ง์ ‘ ์ฝ”๋“œ๋ฅผ ๋’ค์ง‘์–ด์„œ ์–ป์Šต๋‹ˆ๋‹ค: 0110 1001 1000 0000.

  5. ์šฐ๋ฆฌ๋Š” ์ด์ง„์ˆ˜ ์‹œ์Šคํ…œ์œผ๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ์ˆซ์ž์˜ ์–‘์ˆ˜ ํ‘œํ˜„์„ ์–ป์Šต๋‹ˆ๋‹ค.

    1โˆ™2^14+1โˆ™2^13+1โˆ™2^11+1โˆ™2^8+1โˆ™2^7 = 16384+8192+2048+256+128 = 27008.
  6. ๋งˆ์ด๋„ˆ์Šค๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ๋‹ต์„ ์–ป์œผ์‹ญ์‹œ์˜ค.-27008

๊ธฐ๋ณธ ์œ ํ˜• ์บ์ŠคํŒ….  int๋ฅผ short ๋ฐ byte๋กœ ์บ์ŠคํŒ… - 2์ˆœ๋ฐฉํ–ฅ, ์—ญ๋ฐฉํ–ฅ ๋ฐ ๋ณด์™„ ์ฝ”๋“œ์˜ ์˜จ๋ผ์ธ ๊ณ„์‚ฐ๊ธฐ์— ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค . ๋˜ํ•œ ์ด ์‚ฌ์ดํŠธ์˜ ๊ณ„์‚ฐ๊ธฐ ์•„๋ž˜์—๋Š” ์—ญ ๋ฐ ๋ณด์ˆ˜ ์ฝ”๋“œ์— ๋Œ€ํ•œ ์•ฝ๊ฐ„์˜ ์ด๋ก ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
์ฝ”๋ฉ˜ํŠธ
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION