๊ด€๋ฆฌ ๋ฉ”๋‰ด

JiYoung Dev ๐Ÿ–ฅ

์ •์ˆ˜ํ˜•(byte, short, int, long) ํƒ€์ž…์˜ ํฌ๊ธฐ ๋ณธ๋ฌธ

Study/Java

์ •์ˆ˜ํ˜•(byte, short, int, long) ํƒ€์ž…์˜ ํฌ๊ธฐ

Shinjio 2023. 10. 27. 17:09

๋ฐฑ์ค€์—์„œ 3๊ฐ€์ง€ ์ˆ˜๋ฅผ ๋”ํ•˜๋Š” ๋ฌธ์ œ๋ฅผ ํ’€์—ˆ๋‹ค. ์•„์ฃผ ์‰ฌ์šด ๋ฌธ์ œ์˜€์œผ๋‚˜ ์•„๋ž˜์™€ ๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜์˜€๋‹ค. 

 

 

ํ•ด๋‹น ์—๋Ÿฌ๋Š” ์ •์ˆ˜ํ˜• ๋ฒ”์œ„๋กœ ์ธํ•ด ๋ฐœ์ƒํ•œ ๋ฌธ์ œ์˜€๋‹ค. ๋”ฐ๋ผ์„œ ์ด๋ฒˆ์—๋Š” Java์˜ ์ •์ˆ˜ํ˜• ํƒ€์ž…๊ณผ ๊ฐ ํƒ€์ž…๋ณ„ ํฌ๊ธฐ๋ฅผ ๋‹ค์‹œ ๋ณต์Šตํ•ด๋ณด๊ณ ์ž ํ•œ๋‹ค. 

 

Java ์ž๋ฃŒํ˜•

์ •์ˆ˜ํ˜•๋ถ€ํ„ฐ ๋“ค์–ด๊ฐ€๊ธฐ ์ „์— Java์—์„œ๋Š” ์ž๋ฃŒํ˜•์„ ํฌ๊ธฐ '๊ธฐ๋ณธํ˜•(Primitive type)'๊ณผ '์ฐธ์กฐํ˜•(reference type)' ๋‘ ๊ฐ€์ง€๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค. ๊ธฐ๋ณธํ˜• ๋ณ€์ˆ˜๋Š” ์‹ค์ œ ๊ฐ’(data)๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐ˜๋ฉด, ์ฐธ์กฐํ˜• ๋ณ€์ˆ˜๋Š” ์–ด๋–ค ๊ฐ’์ด ์ €์žฅ๋˜์–ด ์žˆ๋Š” ์ฃผ์†Œ(memory address)๋ฅผ ๊ฐ’์œผ๋กœ ๊ฐ–๋Š”๋‹ค. 

 

์ž๋ฐ”์˜ ๊ธฐ๋ณธํ˜• ํƒ€์ž…์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค. 

  • ๋…ผ๋ฆฌํ˜•(boolean)
  • ์ •์ˆ˜ํ˜•(byte, short, int, long)
  • ๋ฌธ์žํ˜•(char)
  • ์‹ค์ˆ˜ํ˜•(float, double)

์ด๋Ÿฌํ•œ ํƒ€์ž…๋“ค์€ ๊ฐ๊ฐ ์ฐจ์ง€ํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์˜ ํฌ๊ธฐ๊ฐ€ ๋‹ค๋ฅด๋‹ค. 

 

Java ์ž๋ฃŒํ˜• : ๊ธฐ๋ณธํ˜• ์œ ํ˜• ๋ฐ ํฌ๊ธฐ

  1byte (8bit) 2byte (16bit) 4byte (32bit) 8byte (64bit)
๋…ผ๋ฆฌํ˜• boolean      
๋ฌธ์žํ˜•   char    
์ •์ˆ˜ํ˜• byte short int long
์‹ค์ˆ˜ํ˜•     float double

 

์ •์ˆ˜ํ˜• ํฌ๊ธฐ 

์ •์ˆ˜ํ˜•์˜ ํฌ๊ธฐ๋Š” bit์ˆ˜์— ๋”ฐ๋ผ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค. ์•„๋ž˜ ์‹์—์„œ n์— ํ•ด๋‹นํ•˜๋Š” bit์ˆ˜๋ฅผ ๋„ฃ์œผ๋ฉด ๋œ๋‹ค. 

-2^(n-1) ~ 2^(n-1) - 1 

 

๋ฌธ์ œ์—์„œ ์ˆซ์ž์˜ ๋ฒ”์œ„๋Š” ์•„๋ž˜์™€ ๊ฐ™์•˜๋‹ค. 

 

์ฒ˜์Œ ๋‚ด๊ฐ€ ๋ฌธ์ œ๋ฅผ ํ’€์—ˆ์„ ๋• int ํƒ€์ž…์„ ์‚ฌ์šฉํ•˜์˜€๋‹ค. 

int ํƒ€์ž…์˜ ๊ฒฝ์šฐ 4byte๋กœ -2^(-31) ~ 2^(31)-1 ๊นŒ์ง€์˜ ๋ฒ”์œ„๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. 

 

2^10 = 1024 => ์•ฝ 10^3 

2^31 = 2^10 *  2^10 * 2^10 * 2 = 1024 * 1024 * 1024 * 2 = 2*10^9 ์ด๋ฏ€๋กœ

๋Œ€๋žต 10์ž๋ฆฌ์˜ ์ˆซ์ž์ด๋‹ค.

 

๋ฌธ์ œํ•ด์„œ๋Š” ์ˆซ์ž A, B, C๊ฐ€ 10์ž๋ฆฌ ์ด์ƒ์ด๋ฏ€๋กœ ๊ทธ๋ณด๋‹ค ๋” ํฐ ๋ฒ”์œ„๋ฅผ ๊ฐ€์ง„ long ํƒ€์ž… ์ •์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ–ˆ๋‹ค. 

 

์•ž์œผ๋กœ ๋ฌธ์ œ ํ’€ ๋•Œ, ์ •์ˆ˜ํ˜• ํฌ๊ธฐ ์ฃผ์˜ํ•ด์„œ ํ’€์ž!

 

๐Ÿ‘ ๊ธฐ์–ต Point

int ์ž๋ฃŒํ˜• → ๋Œ€๋žต 20์–ต์œผ๋กœ 10 ์ž๋ฆฌ ์ˆ˜