본 글은 inflearn: iOS 개발을 위한 Swift5 완벽 가이드를 수강하며 정리한 글입니다.
Int의 표현 가능 범위 -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
이는 22조보다 약 42만배 큰 숫자이다. 작은 수를 저장하겠다고 Int라는 자료형을 사용하면 그만큼 메모리 낭비가 크다.
→ 세분화된 다양한 Int 타입을 함께 제공한다.
하지만 요즘은 메모리 가격이 용량 대비 엄청 저렴해서 공간 낭비가 심하다는 말은 관점에 따라 맞기도, 틀리기도 하다. 그래서 Int를 그냥 사용해도 문제가 없고, 실제로 가장 빠르게 정수를 처리하는 타입이다. Swift에서는 대부분의 경우 Int를 사용한다.
LSB Least Significant Bit 최하위 비트
MSB Most Significant Bit 최상위 비트
음수와 0, 양수를 모두 저장할 수 있다면 Signed 자료형
음수를 저장할 수 없고, 0과 양수만 저장할 수 있다면 Unsigned 자료형
저장된 수가 음수인지 양수인지 구분하기 위한 비트이다.
최상위비트가 1이라면 음수, 0이면 양수임을 알 수 있다.
10진수 → 2진수 → Bitwise NOT → +1
Signed라면 -128부터 127까지, Unsigned라면 0부터 255까지 저장할 수 있다.
이때 255까지 저장할 수 있는 메모리에 256을 저장한다면 어떻게 될까?
비유하자면 컵에 물을 흘러넘치도록 담은 것과 같다.
C 계열 언어는 오버플로우를 허용하지만, Swift는 Overflow를 허용하지 않고 에러를 발생시킨다.