- Learn Kotlin Programming(Second Edition)
- Stephen Samuel Stefan Bocutiu
- 208字
- 2021-06-24 14:13:25
Unsigned integers
Unsigned integer types were introduced in Kotlin 1.3. JVM does not have support out of the box for such types. Starting with Java SE 8, you can use the integer class to store an unsigned int, and operations for unsigned values are provided. Introducing these types, which are found in languages such as C++ or C#, is still in experimental mode. Here is the full list of these types:
- kotlin.UByte: This stores an unsigned 8-bit integer, ranging from 0 to 255
- kotlin.UShort: This stores an unsigned 16-bit integer, ranging from 0 to 65535
- kotlin.UInt: This stores an unsigned 32-bit integer, ranging from 0 to 2^32 - 1
- kotlin.ULong: This stores an unsigned 64-bit integer, ranging from 0 to 2^64 - 1
These types can be defined using literal suffixes and, of course, converting between signed and unsigned types is possible. Last but not least, the unsigned types support similar operators, just like their signed counterparts:
@ExperimentalUnsignedTypes
fun sample() {
// You can define unsigned types using literal suffixes
val uint = 1094u
val ulong = 9999uL
val ubyte: UByte = 255u
val int = uint.toInt()
val byte = ubyte.toByte()
val ulong2 = byte.toULong()
val x = 20u + 22u
val y = "128".toUByte()
val range = 1u..5u
}