06. 기본(The Basic) - 정수(Integers) & 부동소수점 숫자(Floating-Point Numbers)

이경은·2023년 12월 28일
0
post-custom-banner

요약

  1. 정수(Integers) : 소수점을 가지지 않는 범위의 수. signed(+,0,-)와 unsigned(+,0)으로 구분할 수 있다.
    • 정수 범위(Integer Bounds) : .min, .max프로퍼티로 해당 타입의 최소/최대값을 불러올 수 있다.
    • Int : 음수 ~ 양수 범위를 가지는 정수 타입
    • UInt : 0 ~ 양수 범위를 가지는 정수 타입
    • 각 정수 타입은 같은 크기의 범위를 가진다.
      ex) Int : -2,147,483,648 ~ 2,147,483,647, UInt : 0 ~ 4,294,967,295

  2. 부동소수점숫자 : 소수점을 가지는 범위의 수. 소수점 범위에 따라 Double, Float으로 나뉜다.
    • Double : 64-bit 부동소수점. 15자리 소수점 정확도를 가진다.
    • Float : 32-bit 부동소수점. 6자리 소수점 정확도를 가진다.
    • 대부분의 경우 Double타입을 사용하는 것이 선호된다.

정수(Integers)

정수(Integers)는 42-23과 같은 분수가 아닌 숫자들을 말합니다. 정수는 부호가 있는 정수(signed)(양수,0,음수)또는 부호가 없는 정수(Unsigned)(양수 또는 0)이 있습니다.

Swift는 8, 16, 32, 64 비트 형태의 부호가 있는 정수와 부호가 없는 정수를 지원합니다. 각 비트를 지원하는 타입의 이름은 부호가 없는 타입(Unsigned) - UInt8, UInt16, UInt32, UInt64, 부호가 있는 타입(Signed) - Int8, Int16, Int32, Int64처럼 이루어져 있으며, 항상 첫글자는 대문자로 시작합니다.




정수 범위(Integer Bounds)

각 정수 타입의 minmax 프로퍼티를 통해 각 정수 타입의 최소값과 최대값을 가져올 수 있습니다.

let minValue = UInt8.min // 부호가 없는 8비트 정수타입의 최소값은 0입니다.
let maxValue = UInt8.max // 부호가 없는 8비트 정수타입의 최대값은 255입니다.

이러한 프로퍼티의 값은 적절한 크기의 숫자 타입(위 예시에서 UInt8)이므로 동일한 타입의 다른 값과 함께 표현식에 사용될 수 있습니다.




Int

대부분의 경우 코드에서 사용할 정수의 특정 사이즈를 결정할 필요는 없습니다. Swift는 현재 플랫폼의 네이티브 사이즈와 같은 Int인 정수 타입을 제공합니다.

  • 32-bit 플랫폼에서 IntInt32와 같은 크기를 가짐
  • 64-bit 플랫폼에서 IntInt64와 같은 크기를 가짐

특정 크기의 정수로 작업해야 하는 경우가 아니라면 항상 코드의 정수 값을 사용할 때, Int를 사용하세요. 이것은 코드의 일관성과 상호 운용성에 영향을 미칩니다. 32-bit플랫폼에서도 Int-2,147,483,6482,147,483,647 사이의 값을 저장할 수 있으며, 일반적인 사용성에 문제가 없습니다.




UInt

Swift는 또한 현재 플랫폼의 네이티브 사이즈와 같은 UInt인 정수 타입을 제공합니다.

  • 32-bit 플랫폼에서 UIntUInt32와 같은 크기를 가짐
  • 64-bit 플랫폼에서 UIntUInt64와 같은 크기를 가짐

UInt는 플랫폼의 네이티브 사이즈와 같은 크기의 부호없는 정수 타입이 필요한 경우에만 사용하는 것이 좋습니다. 저장될 값이 음수가 아니더라도 Int를 사용하는 것이 권장됩니다. 정수값에 Int를 일관되게 사용하면 코드 상호 운용성을 지원하고 타입세이프티와 타입추론(Type Safety and Type Inference)에 설명된 것처럼 다른 숫자형식 간에 변환할 필요가 없어집니다.




부동 소수점 숫자(Floating-Point Numbers)

부동소수점 숫자(Floating-Point Numbers)는 3.14159, 0.1, -273.15처럼 분수 성분을 가진 숫자를 말합니다.

부동소수점은 정수 타입의 값 범위보다 더 넓은 범위의 표현이 가능하고, Int보다 더 크거나 작은 값의 저장이 가능합니다. Swift는 2개의 부호를 가진 부동 수수점 숫자 타입을 제공합니다.

  • Double은 64-bit 부동소수점 숫자를 표기
  • Float은 32-bit 부동소수점 숫자를 표기

Double은 최소 15자리의 소수점 정확도를 가지고 있는 것에 반해, Float은 더 적은 6자리의 소수점 정확도를 가지고 있습니다. 사용할 적절한 부동 소수점 타입은 코드에서 작업해야하는 값의 특성과 범위에 따라 달라집니다. 두 타입 중에는 Double이 더 선호됩니다.

post-custom-banner

0개의 댓글