반응형
Kotlin에서 숫자 타입은 다양한 수치 연산을 지원하는 기본 데이터 타입입니다. 각 타입은 크기와 정밀도에 따라 여러 가지로 나뉩니다. Kotlin의 숫자 타입에는 정수 타입(Byte, Short, Int, Long)과 부동 소수점 타입(Float, Double)이 있습니다. 또한, 부호 없는 정수 타입(UByte, UShort, UInt, ULong)도 지원합니다.
아래에서는 각 숫자 타입의 사용 예제를 통해 자세히 설명하겠습니다.
1. 정수 타입 (Integer Types)
Byte
- 8비트 정수 타입으로, 범위는 -128에서 127까지입니다.
- 주로 메모리 사용을 줄이기 위해 사용됩니다.
val byteValue: Byte = 127
println(byteValue) // 출력: 127
Short
- 16비트 정수 타입으로, 범위는 -32,768에서 32,767까지입니다.
- 메모리 효율성을 위해 사용되지만, 자주 사용되지는 않습니다.
val shortValue: Short = 32767
println(shortValue) // 출력: 32767
Int
- 32비트 정수 타입으로, 범위는 -2,147,483,648에서 2,147,483,647까지입니다.
- 일반적인 정수 연산에 가장 많이 사용됩니다.
val intValue: Int = 2147483647
println(intValue) // 출력: 2147483647
Long
- 64비트 정수 타입으로, 범위는 -9,223,372,036,854,775,808에서 9,223,372,036,854,775,807까지입니다.
- 매우 큰 숫자를 다룰 때 사용됩니다. 값 뒤에 'L'을 붙여서 명시할 수 있습니다.
val longValue: Long = 9223372036854775807L
println(longValue) // 출력: 9223372036854775807
2. 부동 소수점 타입 (Floating-Point Types)
Float
- 32비트 부동 소수점 타입으로, 정밀도는 약 6-7 자리입니다.
- 숫자 뒤에 'F'를 붙여서 명시할 수 있습니다.
val floatValue: Float = 3.14F
println(floatValue) // 출력: 3.14
Double
- 64비트 부동 소수점 타입으로, 정밀도는 약 15-16 자리입니다.
- Kotlin에서 기본 부동 소수점 타입입니다. 대부분의 소수 계산에 사용됩니다.
val doubleValue: Double = 3.141592653589793
println(doubleValue) // 출력: 3.141592653589793
3. 부호 없는 정수 타입 (Unsigned Integer Types)
Kotlin에서는 부호 없는 정수 타입도 지원하며, 이는 UByte, UShort, UInt, ULong입니다. 이 타입들은 음수가 없는 양의 숫자 범위만을 다룹니다.
UByte
- 8비트 부호 없는 정수 타입으로, 범위는 0에서 255까지입니다.
- 숫자 뒤에 'u'를 붙여서 명시할 수 있습니다.
val uByteValue: UByte = 255u
println(uByteValue) // 출력: 255
UShort
- 16비트 부호 없는 정수 타입으로, 범위는 0에서 65,535까지입니다.
val uShortValue: UShort = 65535u
println(uShortValue) // 출력: 65535
UInt
- 32비트 부호 없는 정수 타입으로, 범위는 0에서 4,294,967,295까지입니다.
val uIntValue: UInt = 4294967295u
println(uIntValue) // 출력: 4294967295
ULong
- 64비트 부호 없는 정수 타입으로, 범위는 0에서 18,446,744,073,709,551,615까지입니다.
val uLongValue: ULong = 18446744073709551615u
println(uLongValue) // 출력: 18446744073709551615
4. 숫자 타입 간 변환
Kotlin에서는 숫자 타입 간의 암시적 변환을 허용하지 않습니다. 대신, 명시적 변환 함수를 사용해야 합니다.
val intVal: Int = 10
val longVal: Long = intVal.toLong() // Int에서 Long으로 변환
println(longVal) // 출력: 10
val doubleVal: Double = intVal.toDouble() // Int에서 Double로 변환
println(doubleVal) // 출력: 10.0
5. 수학 연산
Kotlin에서는 기본적인 수학 연산을 숫자 타입에서 지원합니다. 덧셈, 뺄셈, 곱셈, 나눗셈 및 나머지 연산을 수행할 수 있습니다.
val num1: Int = 10
val num2: Int = 3
val sum = num1 + num2 // 덧셈
val difference = num1 - num2 // 뺄셈
val product = num1 * num2 // 곱셈
val quotient = num1 / num2 // 나눗셈
val remainder = num1 % num2 // 나머지
println("Sum: $sum") // 출력: Sum: 13
println("Difference: $difference") // 출력: Difference: 7
println("Product: $product") // 출력: Product: 30
println("Quotient: $quotient") // 출력: Quotient: 3
println("Remainder: $remainder") // 출력: Remainder: 1
6. 숫자 리터럴
Kotlin에서는 숫자 리터럴을 쉽게 읽을 수 있도록 하기 위해 다양한 방법으로 숫자를 표현할 수 있습니다.
- 언더스코어 (
_
): 긴 숫자 리터럴을 가독성 있게 만들기 위해 사용할 수 있습니다.
val million = 1_000_000 // 1,000,000
println(million) // 출력: 1000000
- 2진수, 8진수, 16진수:
val binary = 0b1010 // 2진수: 10
val hex = 0xFF // 16진수: 255
println(binary) // 출력: 10
println(hex) // 출력: 255
요약
Kotlin은 다양한 숫자 타입을 지원하여 여러 가지 수치 연산을 간단하고 효율적으로 처리할 수 있습니다. 각 숫자 타입은 그 범위와 용도에 따라 적절히 선택하여 사용할 수 있습니다. Kotlin의 명시적 타입 변환과 숫자 리터럴 표기법은 코드의 가독성과 안전성을 높여줍니다.
반응형