μ•Œκ³ λ¦¬μ¦˜πŸ₯š/κ°œλ…

[μžλ°” μ½”λ”©ν…ŒμŠ€νŠΈ κΈ°λ³Έ] 0. μžλ£Œν˜•μ˜ μ’…λ₯˜μ™€ 크기

πŸͺ„ν•˜λ£¨πŸͺ„ 2023. 6. 21. 01:00
728x90

μ •μˆ˜ μžλ£Œν˜•

νƒ€μž…λͺ… λ©”λͺ¨λ¦¬μ˜ 크기 λ°μ΄ν„°μ˜ ν‘œν˜„ λ²”μœ„ 계산
byte 1byte -128 ~ 127 (8bit=λΆ€ν˜Έμžλ¦¬(1)+숫자자리(7))
short 2byte -32,768 ~ 32,767 (16bit=λΆ€ν˜Έμžλ¦¬(1)+숫자자리(7))
int 4byte -2,147,483,648 ~ 2,147,483,647 (μ•½ 20μ–΅) (32bit=λΆ€ν˜Έμžλ¦¬(1)+숫자자리(7))
long 8byte -9,223,372,036,854,775,808
~ 9,223,372,036,854,775,807
(64bit=λΆ€ν˜Έμžλ¦¬(1)+숫자자리(7))

 

μΆ”κ°€ 1) long λ³€μˆ˜μ˜ 경우 값을 λŒ€μž…ν•  λ•ŒL(ν˜Ήμ€ μ†Œλ¬Έμž l) μ ‘미사λ₯Ό λΆ™μ—¬μ£Όμ–΄μ•Ό ν•œλ‹€.

μΆ”κ°€ 2) 2μ§„μˆ˜, 8μ§„μˆ˜ 16μ§„μˆ˜λŠ” 각각 int μžλ£Œν˜•μ„ μ‚¬μš©ν•˜λ©°, 0b숫자, 0숫자, 0x숫자 ν˜•νƒœλ‘œ μ €μž₯ν•œλ‹€.

 

 

μ‹€μˆ˜ μžλ£Œν˜•

κΈ°λ³Έ : double

 

νƒ€μž…λͺ… λ©”λͺ¨λ¦¬μ˜ 크기 λ°μ΄ν„°μ˜ ν‘œν˜„ λ²”μœ„ 계산
float 4byte ( 3.4 X $10^{-38}$ ) ~ ( 3.4 X $10^{38}$ ) (32bit=λΆ€ν˜Έμžλ¦¬(1)+숫자자리(7))
double 8byte ( 1.7 X $10^{-308}$ ) ~ ( 1.7 X $10^{308}$ ) (64bit=λΆ€ν˜Έμžλ¦¬(1)+숫자자리(7))

 

μΆ”κ°€ 1) float λ³€μˆ˜μ˜ 경우 값을 λŒ€μž…ν• λ•Œ F(ν˜Ήμ€ μ†Œλ¬Έμž f) μ ‘미사λ₯Ό λΆ™μ—¬μ£Όμ–΄μ•Ό ν•œλ‹€.

μΆ”κ°€ 2) μ‹€μˆ˜ μžλ£Œν˜•μ€ ν‘œκΈ°ν•  λ•Œ λΆ€λ™μ†Œμˆ˜μ  방식을 μ‚¬μš©ν•˜κΈ°λ•Œλ¬Έμ— ν•„μ—°μ μœΌλ‘œ μ˜€μ°¨κ°€ λ°œμƒν•œλ‹€. λ”°λΌμ„œ μ •ν™•ν•œ 연산이 ν•„μš”ν•  λ•Œμ—λŠ” μ •μˆ˜ν˜• νƒ€μž…μœΌλ‘œ μΉ˜ν™˜ν•˜κ±°λ‚˜ BigDecimal(μžλ£Œν˜•)을 μ‚¬μš©ν•˜μ—¬ ν•΄κ²°ν•œλ‹€.

 

μ°Έκ³ 1) μ‹€μˆ˜μ˜ ν‘œν˜„

κ³ μ •μ†Œμˆ˜μ  방식 ⇒ μ •μˆ˜. μ†Œμˆ˜

λΆ€λ™μ†Œμˆ˜μ  방식 κ°€μˆ˜(μ†Œμˆ˜ν˜•νƒœ)*$2^{μ§€μˆ˜}$

 

μ°Έκ³  2) BigDecimal μžλ£Œν˜•

속도가 λŠλ¦¬μ§€λ§Œ, μ •ν™•ν•œ μ†Œμˆ˜μ  계산을 μœ„ν•΄ μ‚¬μš©

ex) 0123456.78910

 

μš©μ–΄μ •λ¦¬

  • precision ($\simeq$ μ •μˆ˜+μ†Œμˆ˜μ μ•„λž˜ 자릿수) : μ™Όμͺ½μ΄ 0이 μ•„λ‹Œ λΆ€λΆ„μ—μ„œ μ‹œμž‘ν•˜μ—¬ μ†Œμˆ˜μ  μœ„μ˜ λΆ€λΆ„μ˜ 자리수 ex) 6자리(123456)
  • scale($\simeq$ μ†Œμˆ˜μ μ•„λž˜ 자리수) : 였λ₯Έμͺ½μ΄ 0이 μ•„λ‹Œ λΆ€λΆ„μ—μ„œ λλ‚˜λŠ” μ†Œμˆ˜μ  μ•„λž˜ 자릿수 ex) 4자리(7891)

 

 

논리 μžλ£Œν˜•

νƒ€μž…λͺ… λ©”λͺ¨λ¦¬μ˜ 크기 λ°μ΄ν„°μ˜ μœ ν˜•
boolean 1byte true, false

 

 

문자 μžλ£Œν˜•

νƒ€μž…λͺ… λ©”λͺ¨λ¦¬μ˜ 크기 ν• λ‹Ή
char 2byte '문자'

 


 

λ¬Έμžμ—΄ μžλ£Œν˜•

νƒ€μž…λͺ… ν• λ‹Ή
string "λ¬Έμžμ—΄"

 

μΆ”κ°€ 1) μ•žμ„  μžλ£Œλ“€κ³Ό λ‹€λ₯΄κ²Œ μ°Έμ‘°(reference) μžλ£Œν˜•

(μ•žμ˜ μžλ£Œλ“€μ€ μ›μ‹œ νƒ€μž…μ˜ λ°μ΄ν„°λ‘œ stack μ˜μ—­μ— κ·ΈλŒ€λ‘œ μ €μž₯λ˜μ§€λ§Œ,) μ°Έμ‘° νƒ€μž…μ˜ 데이터(λ¬Έμžμ—΄)λŠ” heap μ˜μ—­μ— μ €μž₯되고 heap μ˜μ—­μ˜ μ£Όμ†Œλ§Œ stack μ˜μ—­μ— μ €μž₯λœλ‹€.

μΆ”κ°€ 2) ν•œ 번 μƒμ„±λ˜λ©΄ κ·Έ 값을 읽기만 ν•  수 있고, λ³€κ²½ν•  μˆ˜λŠ” μ—†μŒ(λΆˆλ³€κ°μ²΄)

μ—°μ‚°μžλ₯Ό μ΄μš©ν•˜μ—¬ λ¬Έμžμ—΄ 연산을 μˆ˜ν–‰ν•˜λ©΄, κΈ°μ‘΄ λ¬Έμžμ—΄μ˜ λ‚΄μš©μ΄ λ³€κ²½λ˜λŠ” 것이 μ•„λ‹ˆλΌ μ—°μ‚°μ˜ 결과에 ν•΄λ‹Ήν•˜λŠ” μƒˆλ‘œμš΄ String μΈμŠ€ν„΄μŠ€κ°€ μƒμ„±λœλ‹€.

 

 

728x90