Dog foot print

[SWIFT] 기본 자료형 및 숫자 타입 본문

IOS/Swift

[SWIFT] 기본 자료형 및 숫자 타입

개 발자국 2021. 6. 29. 00:17

자료형이란

자료형이란 어떤 값이 띄고 있는 성질이 속하는 타입을 의미한다. 아주 쉬운 예를 들면 10 + 안녕하세요. = X 수식의 X값을 구할 수 있을까 ? 구할 수 없다. 안녕하세요. 는 숫자가 아니기 때문이다. 이 처럼 동일한 숫자인듯 보이는 10과 “10”은 엄연히 다른 자료형인 숫자와 문자열이라는 타입을 가지고 있어서 연산이 가능하지 않다.

이처럼 자료형은 어떤 값이 수행 할 수 있는 연산과 기능을 달리하는데 기준이 된다.

Note : Data type을 줄여 type이라 칭한다.

타입 선언과 추론

var variable : String = "hello swift";
let constants : String = "hello swift";

var ten : Int;
ten = 20;
ten = "20"; //error

타입 선언은 어떤 변수나 상수가 저장 할 수 있는 값이 어떤 자료형인지 컴파일러에게 명시해주는 것을 의미한다. 변수 선언 당시 타입 선언을 하게되면, 해당 변수는 해당 타입이외에는 할당이 불가능하다.

타입 선언 방법

    [변수 타입] [변수명] : [DATA TYPE] = [값];
    [변수 타입] [변수명] : [DATA TYPE];

타입을 선언하는 방법은 변수가 선언 되었을 때, 변수명 옆에 : DATA TYPE을 작성하는 것으로 사용이 가능하다.

타입 추론

var variable = "hello swift";
let constants = "hello swift";

variable = 10;

타입 추론은 첫 할당과 동시에, 컴파일러가 자동으로 해당 변수에 자료형을 부여하는 것을 의미한다. 즉 처음 할당되는 값이 해당 변수의 자료형이 된다.

기본 자료형 INT

TIP : 10은 정수이다. 10.2는 실수이다. -10은 정수이다.

Int는 정수를 뜻하는 자료형이다. 이 Int는 양의 정수와 음의 정수의 값을 모두 담을 수 있는 자료형이며, 하위 자료형으로는 Int8, Int,16, Int32, Int64 형이 존재한다.

Int

var intMax : Int = Int.max;
var intMin : Int = Int.min;

// 9223372036854775807
//-9223372036854775808

가장 기본적으로 사용되는 Int는 2의 64승까지의 표현이 가능하다.

Int8

var intMax : Int8 = Int8.max;
var intMin : Int8 = Int8.min;
//127
//-128

Int의 가장 적은 수를 표현 할 수 있는 Int8은 2의 8승까지 표현이 가능하다.

Int16 ~ Int64

var int16Max : Int16 = Int16.max;
var int16Min : Int16 = Int16.min;
//32767
//-32768
var int32Max : Int32 = Int32.max;
var int32Min : Int32 = Int32.min;
//2147483647
//-2147483648
var int64Max : Int64 = Int64.max;
var int64Min : Int64 = Int64.min;
// 9223372036854775807
//-9223372036854775808

어떤 Int를 사용해야 좋을까 ?

Note : Int는 CPU환경에 따라 변경되는 Int의 크기를 자유자재로 변경 할 수 있기 때문에, 환경에 따른 코드 변화가 필요 없어 코드를 대폭 줄 일수 있다.

굳이 큰 숫자를 담을 수 있는 64형을 사용하면 마음이 편할 듯 하다. 그러나, 이렇게 큰 숫자를 담을 수 있는 자료형은 메모리에서 차지하는 메모리 공간도 크기때문에, 적절한 값의 사용도 중요하다.

Q : 사람의 나이를 저장하는 age라는 변수가 존재한다면 어떤 자료형을 사용하는 것이 좋을까 ?

A : 현재 인류 수명은 평균 100살정도 밖에 안되기 때문에, Int8의 자료형을 써도 충분할 것이다.

UInt

UIntUnsigned Integer라는 단축어이며, 양의 정수 만을 허용하는 자료형이다. 즉 0이하의 음의 정수는 이 자료형의 값에 할당 될 수 없다.

UInt는 음의 정수만큼의 크기를 양의 정수에서 더 사용 가능하기 때문에 Int.max * 2 + 1 만큼 최대치를 갖는다.

var UIntMax : UInt = UInt.max;
var UIntMin : UInt = UInt.min;
//18446744073709551615
//0

Tip : Uint 또한 Int 타입처럼 서브 자료형인 Uint8,Uint16,Uint32,Uint64를 가지고 있다.

Double 과 Float

DoubleFloatintUint 와 달리 소수점을 가질 수 있는 자료형이다. 두 자료형 모두 실수를 표현 할 수 있는 것은 같지만 Float는 소수점 아래 57자리 아래까지 정확히 표현 가능하고, Double은 1417자리 까지 정확한 표현이 가능하다.

Note : Double은 64bit 부동 소수점 자료형이다.
Note : Float은 32bit 부동 소수점 자료형이다.

var float : Float = 12.1212121212
var double : Double = 12.12121212121212121212121212112121221

//12.121212
//12.12121212121212
반응형

'IOS > Swift' 카테고리의 다른 글

[SWIFT] Set 집합  (0) 2021.07.01
[SWIFT] 문자열 보간법과 트리플 쿼우팅  (0) 2021.06.30
[SWIFT] 기본 자료형[2]  (0) 2021.06.29
[swift] 변수 사용하기  (0) 2021.06.28
[Swift] Stack 만들기  (0) 2021.03.17
Comments