์•ˆ๋…•! CodeGym์„ ์ง„ํ–‰ํ•˜๋ฉด์„œ ํ”„๋ฆฌ๋ฏธํ‹ฐ๋ธŒ ์œ ํ˜•์„ ์—ฌ๋Ÿฌ ๋ฒˆ ์ ‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ์šฐ๋ฆฌ๊ฐ€ ๊ทธ๋“ค์— ๋Œ€ํ•ด ์•Œ๊ณ  ์žˆ๋Š” ์งง์€ ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค.
  1. ๊ทธ๊ฒƒ๋“ค์€ ๊ฐ์ฒด๊ฐ€ ์•„๋‹ˆ๋ฉฐ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ๋œ ๊ฐ’์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
  2. ์—ฌ๋Ÿฌ ์ข…๋ฅ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค
    • ์ •์ˆ˜: byte , short , int , long
    • ๋ถ€๋™ ์†Œ์ˆ˜์ (์†Œ์ˆ˜) ์ˆซ์ž: float ๋ฐ double
    • ๋…ผ๋ฆฌ๊ฐ’: ๋ถ€์šธ
    • ๊ธฐํ˜ธ ๊ฐ’(๋ฌธ์ž ๋ฐ ์ˆซ์ž ํ‘œ์‹œ์šฉ): char
  3. ๊ฐ ์œ ํ˜•์—๋Š” ๊ณ ์œ ํ•œ ๊ฐ’ ๋ฒ”์œ„๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์›์‹œ ์œ ํ˜• ๋ฉ”๋ชจ๋ฆฌ ํฌ๊ธฐ ๊ฐ’ ๋ฒ”์œ„
๋ฐ”์ดํŠธ 8๋น„ํŠธ -128 ~ 127
์งง์€ 16๋น„ํŠธ -32768 ~ 32767
์ˆฏ 16๋น„ํŠธ 0 ~ 65536
์ •์ˆ˜ 32๋น„ํŠธ -2147483648 ~ 2147483647
๊ธด 64๋น„ํŠธ -9223372036854775808 ~ 9223372036854775807
๋œจ๋‹ค 32๋น„ํŠธ (2์˜ -149์Šน) ~ ((2 - (2์˜ -23์Šน)) * 2์˜ 127์Šน)
๋”๋ธ” 64๋น„ํŠธ (-2์˜ 63์Šน) ~ ((2์˜ 63์Šน) - 1)
๋ถ€์šธ 8(๋ฐฐ์—ด์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ), 32(๋ฐฐ์—ด์—์„œ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ) ์ฐธ ๋˜๋Š” ๊ฑฐ์ง“
๊ทธ๋Ÿฌ๋‚˜ ๊ฐ’์ด ๋‹ค๋ฅผ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์ฐจ์ง€ํ•˜๋Š” ๊ณต๊ฐ„๋„ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. int ๋Š” 1๋ฐ”์ดํŠธ ์ด์ƒ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋กฑ์€ ์ˆ๋ณด๋‹ค ํฝ๋‹ˆ๋‹ค. ํ”„๋ฆฌ๋ฏธํ‹ฐ๋ธŒ๊ฐ€ ์ฐจ์ง€ํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ์–‘์€ ๋Ÿฌ์‹œ์•„ ์ค‘์ฒฉ ์ธํ˜•๊ณผ ๋น„๊ตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ์œ ํ˜•์˜ ํ™•๋Œ€ ๋ฐ ์ถ•์†Œ - 2 ๊ฐ ์ค‘์ฒฉ ์ธํ˜•์—๋Š” ๋‚ด๋ถ€์— ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ณต๊ฐ„์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ค‘์ฒฉ ์ธํ˜•์ด ํด์ˆ˜๋ก ๋” ๋งŽ์€ ๊ณต๊ฐ„์ด ์žˆ์Šต๋‹ˆ๋‹ค. ํฐ ์ค‘์ฒฉ ์ธํ˜•( long )์€ ๋” ์ž‘์€ int๋ฅผ ์‰ฝ๊ฒŒ ์ˆ˜์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค . ์‰ฝ๊ฒŒ ๋งž๊ณ  ๋‹ค๋ฅธ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. Java์—์„œ๋Š” ํ”„๋ฆฌ๋ฏธํ‹ฐ๋ธŒ๋กœ ์ž‘์—…ํ•  ๋•Œ ์ด๋ฅผ ์•”์‹œ์  ๋ณ€ํ™˜์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋˜๋Š” ๋‹ค๋ฅด๊ฒŒ ํ‘œํ˜„ํ•˜๋ฉด ํ™•์žฅ์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

์ž๋ฐ”์—์„œ ํ™•์žฅ

ํ™•๋Œ€ ๋ณ€ํ™˜์˜ ๊ฐ„๋‹จํ•œ ์˜ˆ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

public class Main {

   public static void main(String[] args) {
      
       int bigNumber = 10000000;

       byte littleNumber = 16;

       bigNumber = littleNumber;
       System.out.println(bigNumber);
   }
}
์—ฌ๊ธฐ์„œ๋Š” int ๋ณ€์ˆ˜ ์— ๋ฐ”์ดํŠธ ๊ฐ’์„ ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค . ์•„๋ฌด ๋ฌธ์ œ ์—†์ด ํ• ๋‹น์ด ์„ฑ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋ฐ”์ดํŠธ์— ์ €์žฅ๋œ ๊ฐ’์€ int๊ฐ€ ์ˆ˜์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ๋ณด๋‹ค ์ ์€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ฐจ์ง€ํ•ฉ๋‹ˆ๋‹ค. ์ž‘์€ ์ค‘์ฒฉ ์ธํ˜•(๋ฐ”์ดํŠธ ๊ฐ’)์€ ํฐ ์ค‘์ฒฉ ์ธํ˜•( int ๋ณ€์ˆ˜) ์•ˆ์— ์‰ฝ๊ฒŒ ๋“ค์–ด๊ฐ‘๋‹ˆ๋‹ค. ๊ทธ ๋ฐ˜๋Œ€์˜ ๊ฒฝ์šฐ, ์ฆ‰ ๋ฒ”์œ„๊ฐ€ ํฐ ๋ฐ์ดํ„ฐ ์œ ํ˜•์„ ์ˆ˜์šฉํ•  ์ˆ˜ ์—†๋Š” ๋ณ€์ˆ˜์— ํฐ ๊ฐ’์„ ์ž…๋ ฅํ•˜๋ ค๋Š” ๊ฒฝ์šฐ์—๋Š” ๋‹ค๋ฅธ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ์‹ค์ œ ์ค‘์ฒฉ ์ธํ˜•์„ ์‚ฌ์šฉํ•˜๋ฉด ์ˆซ์ž๊ฐ€ ๋งž์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Java๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ๋‰˜์•™์Šค๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์งง์€ ๋ณ€์ˆ˜ ์— int๋ฅผ ๋„ฃ์–ด ๋ด…์‹œ๋‹ค :

public static void main(String[] args) {

   int bigNumber = 10000000;
  
   short littleNumber = 1000;

   littleNumber = bigNumber;// Error!
   System.out.println(bigNumber);
}
์˜ค๋ฅ˜! ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ํฐ ์ค‘์ฒฉ ์ธํ˜•( int )์„ ์ž‘์€ ์ธํ˜•( short ) ์•ˆ์— ์ง‘์–ด๋„ฃ์–ด ๋น„์ •์ƒ์ ์ธ ์ž‘์—…์„ ์‹œ๋„ํ•˜๊ณ  ์žˆ์Œ์„ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ์ปดํŒŒ์ผ ์˜ค๋ฅ˜๋Š” ์ปดํŒŒ์ผ๋Ÿฌ์˜ ๊ฒฝ๊ณ  ์ž…๋‹ˆ๋‹ค . ํ™•์‹คํ•˜๋‹ค๋ฉด ์ปดํŒŒ์ผ๋Ÿฌ์—๊ฒŒ "๋ชจ๋“  ๊ฒƒ์ด ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ๋ฌด์—‡์„ ํ•˜๋Š”์ง€ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค!"๋ผ๊ณ  ๋งํ•ฉ๋‹ˆ๋‹ค. ์ด ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ช…์‹œ์  ํ˜•์‹ ๋ณ€ํ™˜ ๋˜๋Š” ์ถ•์†Œ๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

Java์—์„œ ์ขํžˆ๊ธฐ

์ถ•์†Œ ๋ณ€ํ™˜์„ ์ˆ˜ํ–‰ํ•˜๋ ค๋ฉด ๊ฐ’์„ ๋ณ€ํ™˜ํ•˜๋ ค๋Š” ์œ ํ˜•์„ ๋ช…์‹œ์ ์œผ๋กœ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ์ปดํŒŒ์ผ๋Ÿฌ์˜ ์งˆ๋ฌธ์— ๋‹ตํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค . ์šฐ๋ฆฌ์˜ ๊ฒฝ์šฐ์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

public static void main(String[] args) {

   int bigNumber = 10000000;

   short littleNumber = 1000;

   littleNumber = (short) bigNumber;
   System.out.println(littleNumber);
}
์šฐ๋ฆฌ๋Š” ์งง์€ ๋ณ€์ˆ˜ ์— int๋ฅผ ๋„ฃ๊ณ  ์‹ถ๊ณ  ์ฑ…์ž„์„ ์งˆ ๊ฒƒ์ž„์„ ๋ช…์‹œ์ ์œผ๋กœ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ๋” ์ข์€ ์œ ํ˜•์ด ๋ช…์‹œ์ ์œผ๋กœ ํ‘œ์‹œ๋œ ๊ฒƒ์„ ํ™•์ธํ•œ ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ๋ณ€ํ™˜์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์ฝ˜์†” ์ถœ๋ ฅ: -27008 ์•ฝ๊ฐ„ ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ๊ฒฐ๊ณผ์˜€์Šต๋‹ˆ๋‹ค. ์ •ํ™•ํžˆ ์™œ ์šฐ๋ฆฌ๊ฐ€ ๊ทธ๊ฒƒ์„ ์–ป์—ˆ์Šต๋‹ˆ๊นŒ? ์‚ฌ์‹ค, ๊ทธ๊ฒƒ์€ ๋ชจ๋‘ ๋งค์šฐ ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค. ์›๋ž˜ ๊ทธ ๊ฐ’์€ 10000000 ์ด์—ˆ๊ณ  32๋น„ํŠธ๋ฅผ ์ฐจ์ง€ํ•˜๋Š” int ๋ณ€์ˆ˜ ์— ์ €์žฅ๋˜์—ˆ๋‹ค . ์ด๊ฒƒ์€ ์ด์ง„ ํ‘œํ˜„์ž…๋‹ˆ๋‹ค.
๊ธฐ๋ณธ ์œ ํ˜•์˜ ํ™•๋Œ€ ๋ฐ ์ถ•์†Œ - 3
์šฐ๋ฆฌ๋Š” ์ด ๊ฐ’์„ 16๋น„ํŠธ๋งŒ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ์งง์€ ๋ณ€์ˆ˜์— ์”๋‹ˆ๋‹ค! ๋”ฐ๋ผ์„œ ์ˆซ์ž์˜ ์ฒ˜์Œ 16๋น„ํŠธ๋งŒ ์ด๋™๋ฉ๋‹ˆ๋‹ค. ๋‚˜๋จธ์ง€๋Š” ํ๊ธฐ๋ฉ๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ short ๋ณ€์ˆ˜๋Š” ๋‹ค์Œ ๊ฐ’์„ ๋ฐ›์Šต๋‹ˆ๋‹ค.
๊ธฐ๋ณธ ์œ ํ˜•์˜ ํ™•๋Œ€ ๋ฐ ์ถ•์†Œ - 4
10์ง„์ˆ˜ ํ˜•์‹์€ -27008๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ํŠน์ • ์œ ํ˜•์œผ๋กœ์˜ ๋ช…์‹œ์  ์ถ•์†Œ ๋ณ€ํ™˜์„ ํ‘œ์‹œํ•˜์—ฌ "ํ™•์ธ"์„ ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค. ์ฒซ์งธ, ์ด๊ฒƒ์€ ๋‹น์‹ ์ด ๊ฒฐ๊ณผ์— ์ฑ…์ž„์„ ์ง€๊ณ  ์žˆ์Œ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ๋‘˜์งธ, ๋ณ€ํ™˜์ด ๋ฐœ์ƒํ•  ๋•Œ ํ• ๋‹นํ•  ๊ณต๊ฐ„์„ ์ปดํŒŒ์ผ๋Ÿฌ์— ์•Œ๋ ค์ค๋‹ˆ๋‹ค. ๊ฒฐ๊ตญ ๋งˆ์ง€๋ง‰ ์˜ˆ์—์„œ short๊ฐ€ ์•„๋‹Œ byte ๋ณ€์ˆ˜์— int ๊ฐ’์„ ํ• ๋‹นํ•˜๋ฉด 16 ๋น„ํŠธ๊ฐ€ ์•„๋‹Œ 8๋น„ํŠธ๋งŒ ๋งˆ์Œ๋Œ€๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๊ฒฐ๊ณผ๋Š” ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค. ์†Œ์ˆ˜ ์œ ํ˜•( float ๋ฐ double )์—๋Š” ๋ณ€ํ™˜์„ ์ขํžˆ๋Š” ์ž์ฒด ํ”„๋กœ์„ธ์Šค๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ง„์˜ ์ˆซ์ž๋ฅผ ์ •์ˆ˜ ์œ ํ˜•์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋ ค๊ณ  ํ•˜๋ฉด ์†Œ์ˆ˜ ๋ถ€๋ถ„์ด ๋ฒ„๋ ค์ง‘๋‹ˆ๋‹ค.

public static void main(String[] args) {

   double d = 2.7;

   long x = (int) d;
   System.out.println(x);
}
์ฝ˜์†” ์ถœ๋ ฅ: 2

์ˆฏ

char๊ฐ€ ๊ฐœ๋ณ„ ๋ฌธ์ž๋ฅผ ํ‘œ์‹œํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค๋Š” ๊ฒƒ์„ ์ด๋ฏธ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค .

public static void main(String[] args) {

   char c = '!';
   char z = 'z';
   char i = '8';
  
}
๊ทธ๋Ÿฌ๋‚˜์ด ๋ฐ์ดํ„ฐ ์œ ํ˜•์—๋Š” ์ดํ•ดํ•ด์•ผ ํ•  ๋ช‡ ๊ฐ€์ง€ ์ค‘์š”ํ•œ ๊ธฐ๋Šฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ’ ๋ฒ”์œ„ ํ‘œ๋ฅผ ๋‹ค์‹œ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.
์›์‹œ ์œ ํ˜• ๋ฉ”๋ชจ๋ฆฌ ํฌ๊ธฐ ๊ฐ’ ๋ฒ”์œ„
๋ฐ”์ดํŠธ 8๋น„ํŠธ -128 ~ 127
์งง์€ 16๋น„ํŠธ -32768 ~ 32767
์ˆฏ 16๋น„ํŠธ 0 ~ 65536
์ •์ˆ˜ 32๋น„ํŠธ -2147483648 ~ 2147483647
๊ธด 64๋น„ํŠธ -9223372036854775808 ~ 9223372036854775807
๋œจ๋‹ค 32๋น„ํŠธ (2์˜ -149์Šน) ~ ((2 - (2์˜ -23์Šน)) * 2์˜ 127์Šน)
๋”๋ธ” 64๋น„ํŠธ (-2์˜ 63์Šน) ~ ((2์˜ 63์Šน) - 1)
๋ถ€์šธ 8(๋ฐฐ์—ด์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ), 32(๋ฐฐ์—ด์—์„œ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ) ์ฐธ ๋˜๋Š” ๊ฑฐ์ง“
char ์œ ํ˜• ์— ๋Œ€ํ•ด 0์—์„œ 65536 ๋ฒ”์œ„๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค . ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๊ฒƒ์€ ๋ฌด์—‡์„ ์˜๋ฏธํ•ฉ๋‹ˆ๊นŒ? ๊ฒฐ๊ตญ ๋ฌธ์ž๋Š” ์ˆซ์ž๋งŒ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๋ฌธ์ž, ๋ฌธ์žฅ ๋ถ€ํ˜ธ๋„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์ž๋ฐ”์—์„œ๋Š” ๋ฌธ์ž ๊ฐ’์ด ์œ ๋‹ˆ์ฝ”๋“œ ํ˜•์‹์œผ๋กœ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ด์ „ ์ˆ˜์—… ์ค‘ ํ•˜๋‚˜์—์„œ ์ด๋ฏธ ์œ ๋‹ˆ์ฝ”๋“œ๋ฅผ ์ ‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ์œ ๋‹ˆ์ฝ”๋“œ๋Š” ์ „ ์„ธ๊ณ„ ๊ฑฐ์˜ ๋ชจ๋“  ์–ธ์–ด์˜ ๊ธฐํ˜ธ๋ฅผ ํฌํ•จํ•˜๋Š” ๋ฌธ์ž ์ธ์ฝ”๋”ฉ ํ‘œ์ค€์ด๋ผ๋Š” ๊ฒƒ์„ ๊ธฐ์–ตํ•˜์‹ค ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ฆ‰, ๋ชจ๋“  ์–ธ์–ด์˜ ๊ฑฐ์˜ ๋ชจ๋“  ๋ฌธ์ž๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ํŠน์ˆ˜ ์ฝ”๋“œ ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค. ์ „์ฒด ์œ ๋‹ˆ์ฝ”๋“œ ํ…Œ์ด๋ธ”์€ ๋งค์šฐ ํฌ๋ฉฐ, ๋ฌผ๋ก  ๊ทธ๊ฒƒ์„ ์•”๊ธฐํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ๊ทธ๊ฒƒ์˜ ์ž‘์€ ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ์œ ํ˜•์˜ ํ™•๋Œ€ ๋ฐ ์ถ•์†Œ - 5 ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฒƒ์€ ๋ฌธ์ž๊ฐ€ ์ €์žฅ๋˜๋Š” ๋ฐฉ์‹์„ ์ดํ•ดํ•˜๊ณ  ํŠน์ • ๋ฌธ์ž์— ๋Œ€ํ•œ ์ฝ”๋“œ๋ฅผ ์•Œ๊ณ  ์žˆ์œผ๋ฉด ํ”„๋กœ๊ทธ๋žจ์—์„œ ํ•ญ์ƒ ํ•ด๋‹น ๋ฌธ์ž๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์„ ๊ธฐ์–ตํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ž„์˜์˜ ์ˆซ์ž๋กœ ์‹œ๋„ํ•ด ๋ด…์‹œ๋‹ค.

public static void main(String[] args) {

   int x = 32816;

   char c = (char) x ;
   System.out.println(c);
}
์ฝ˜์†” ์ถœ๋ ฅ: ่€ฐ ์ด๊ฒƒ์€ Java์—์„œ char ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ํ˜•์‹์ž…๋‹ˆ๋‹ค . ๊ฐ ๊ธฐํ˜ธ๋Š” ์ˆซ์ž, ์ฆ‰ 16๋น„ํŠธ(2๋ฐ”์ดํŠธ) ์ˆซ์ž ์ฝ”๋“œ์— ํ•ด๋‹นํ•ฉ๋‹ˆ๋‹ค. ์œ ๋‹ˆ์ฝ”๋“œ์—์„œ 32816์€ ํ•œ์ž ่€ฐ์— ํ•ด๋‹นํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ์‚ฌํ•ญ์— ์œ ์˜ํ•˜์‹ญ์‹œ์˜ค. ์ด ์˜ˆ์—์„œ๋Š” int ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋ฉ”๋ชจ๋ฆฌ์—์„œ 32๋น„ํŠธ๋ฅผ ์ฐจ์ง€ํ•˜๋Š” ๋ฐ˜๋ฉด char๋Š” 16๋น„ํŠธ๋ฅผ ์ฐจ์ง€ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” int๋ฅผ ์„ ํƒํ–ˆ์Šต๋‹ˆ๋‹ค . ์ˆซ์ž(32816)๊ฐ€ short์— ๋งž์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ ์ž…๋‹ˆ๋‹ค . char ์˜ ํฌ๊ธฐ ( short ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ )๋Š” 16๋น„ํŠธ์ด์ง€๋งŒ char ๋ฒ”์œ„ ์—๋Š” ์Œ์ˆ˜๊ฐ€ ์—†์œผ๋ฏ€๋กœ char ์˜ "์–‘์ˆ˜" ๋ถ€๋ถ„์€๋ฒ”์œ„๋Š” ๋‘ ๋ฐฐ์ž…๋‹ˆ๋‹ค( ์งง์€ ์œ ํ˜•์˜ ๊ฒฝ์šฐ 32767 ๋Œ€์‹  65536). ์ฝ”๋“œ๊ฐ€ 65536 ๋ฏธ๋งŒ์ธ ํ•œ int๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ 65536๋ณด๋‹ค ํฐ int ๊ฐ’์„ ์ƒ์„ฑํ•˜๋ฉด 16๋น„ํŠธ ์ด์ƒ์„ ์ฐจ์ง€ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ๋ณ€ํ™˜์ด ์ข์•„์ง‘๋‹ˆ๋‹ค.

char c = (char) x;
์ถ”๊ฐ€ ๋น„ํŠธ๋Š” ํ๊ธฐ๋˜๊ณ (์œ„์—์„œ ์„ค๋ช…ํ•œ ๋Œ€๋กœ) ๊ทธ ๊ฒฐ๊ณผ๋Š” ๋งค์šฐ ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ฌธ์ž ๋ฐ ์ •์ˆ˜ ์ถ”๊ฐ€์˜ ํŠน์ˆ˜ ๊ธฐ๋Šฅ

ํŠน์ดํ•œ ์˜ˆ๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

public class Main {

   public static void main(String[] args) {

      char c = '1';

      int i = 1;

       System.out.println(i + c);
   }
}
์ฝ˜์†” ์ถœ๋ ฅ: 50 O_ะž ์–ด๋–ป๊ฒŒ ์ดํ•ด๊ฐ€ ๋ฉ๋‹ˆ๊นŒ? 1+1. 50์€ ์–ด๋””์—์„œ ์™”์Šต๋‹ˆ๊นŒ?! char๊ฐ’์ด 0์—์„œ 65536 ๋ฒ”์œ„์˜ ์ˆซ์ž๋กœ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ๋˜๊ณ  ์ด๋Ÿฌํ•œ ์ˆซ์ž๊ฐ€ ๋ฌธ์ž์˜ ์œ ๋‹ˆ์ฝ”๋“œ ํ‘œํ˜„์ด๋ผ๋Š” ๊ฒƒ์„ ์ด๋ฏธ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค . ๋ฌธ์ž ์™€ ์ผ๋ถ€ ์ •์ˆ˜ ์œ ํ˜•์„ ๊ธฐ๋ณธ ์œ ํ˜•์˜ ํ™•๋Œ€ ๋ฐ ์ถ•์†Œ - 6 ์ถ”๊ฐ€ํ•˜๋ฉด ๋ฌธ์ž๊ฐ€ ํ•ด๋‹น ์œ ๋‹ˆ์ฝ”๋“œ ์ˆซ์ž๋กœ ๋ณ€ํ™˜๋ฉ๋‹ˆ๋‹ค. ์ฝ”๋“œ์—์„œ 1๊ณผ '1'์„ ์ถ”๊ฐ€ํ•˜๋ฉด ๊ธฐํ˜ธ '1'์ด ์ž์ฒด ์ฝ”๋“œ์ธ 49๋กœ ๋ณ€ํ™˜๋ฉ๋‹ˆ๋‹ค(์œ„ ํ‘œ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Œ). ๋”ฐ๋ผ์„œ ๊ฒฐ๊ณผ๋Š” 50์ž…๋‹ˆ๋‹ค. ๋‹ค์‹œ ํ•œ ๋ฒˆ ์šฐ๋ฆฌ์˜ ์˜ค๋žœ ์นœ๊ตฌ ่€ฐ๋ฅผ ์˜ˆ๋กœ ๋“ค์–ด ์–ด๋–ค ์ˆซ์ž์— ๋”ํ•ด ๋ด…์‹œ๋‹ค.

public static void main(String[] args) {

   char c = '่€ฐ';
   int x = 200;

   System.out.println(c + x);
}
์ฝ˜์†” ์ถœ๋ ฅ: 33016 ์šฐ๋ฆฌ๋Š” ์ด๋ฏธ ่€ฐ๊ฐ€ 32816์— ํ•ด๋‹นํ•œ๋‹ค๋Š” ๊ฒƒ์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด ์ˆซ์ž์™€ 200์„ ๋”ํ•˜๋ฉด ๊ฒฐ๊ณผ๋Š” 33016์ž…๋‹ˆ๋‹ค. :) ๋ณด์‹œ๋‹ค์‹œํ”ผ ์—ฌ๊ธฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๋งค์šฐ ๊ฐ„๋‹จํ•˜์ง€๋งŒ ์žŠ์ง€ ๋ง์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. .