Swift랑 친해지기/Swift문법정리

[Swift] 숫자 리터럴 (Number Literals)

데브킹덕 2022. 7. 25. 14:43

Literal(리터럴)이란?

- 변하지 않는 데이터 그 자체 의미 

 

큰 숫자를 지수로 표현할때

- 소문자e or 대문자E로 대체 하여 사용

 

 

16진수 표현할때

-실수에서 밑이 e로 고정되고 소문자p or, 대문자 P로대체됨

 

 

금액을 표시할때

- , 대신 _ 사용

 

 

각 진수 별 10 표현 방법 

 

10진수

- 평상시대로 0~9사이 사용 

2진수

- 0b접두어 사용

8진수

-0o접두어 사용

16진수

- 0x접두어 사용

- 매우큰수를 표현하거나, 메모리 주소를 표현하거나, 컬러코드를 표현할때 주로 사용

 

 

정수형타입(Integer Types)

두가지로 나뉨

1. Signed 

2. Unsigned

 

1.Signed 

음수, 0 , 양수 포함

Int 뒤에 붙은 숫자는 bit를 나타냄 

Int8 - 8bit - 1byte

Int16 - 16bit - 2byte

Int32 - 32bit - 4byte

Int64 - 64bit - 8byte

 

Int별 범위

 

메모리 공간의 크기를 알고 싶을때

MemoryLayout.size 

 

2. Unsigned

0, 양수 (음수 제외)

Signed 는 Data bit를 제외한 Signed bit에서 음수와 양수를 나누지만 Unsigned는 음수는 제외기 때문에 양수 범위가 2배 넓음  

메모리 공간의 크기는 같지만 저장할 수 있는 범위가 다름

 

macOS나 iphone에서 64bit를 사용해서 8byte사용

 

따라서 우리가 평소에 사용하는 대부분의 변수와 상수들은 Int에 비해 한없이 작아 메모리 효율이 떨어진다고 볼 수 있지만, 

기기에서 지원하는 용량에 비해 아주 미세한 정도이기때문에 Int를 보통 사용함 

간혹 프레임워크에서 다른 자료형으로 리턴하는 경우는 있음

 

 

 

 

실수형 타입 (Floating - point Types)

음수 , 0 , 양수 저장가능

지수와 가수를 나누어 저장하기 때문에 정수 자료형보다 큰값을 저장 할 수 있음

하지만 메모리에는 전체 데이터가저장이 되지만 메모리크기에 따라 소숫점에 정확도가 달라져 오차가 발생해 출력을 최대 보장 자리까지함 

 Float는 최대 6자리 double은 15자리까지 정확성을 보장하고 나머지는 오차가 발생 할 수 있음

1. Float

32bit - 4byte

2.Double

64bit - 8byte