리터럴에 L이나 l을 접두사로 붙이면 Long 타입이 된다.
val hundredLong = 100L // OK: Long으로 타입이 추론됨 val hundredInt: Int = 100L // Error: assigning Long to Int
앞에 0b(2진수)나 0x(16진수)를 붙여서 2진수나 16진수로 수 리터럴을 작성할 수도 있다.
val bin = 0b10101 // 21 val hex = 0xF9 // 249
수 리터럴의 경우 0을 표현하는 경우가 아니라면 맨 앞에 0이 올 수 없음에 유의하라. 일부 프로그래밍 언어(자바도 포함)는 0으로 시작하는 수 리터럴을 8진수로 사용하는데, 8진수가 쓸모 있는 경우는 드물고 잘못 사용하기도 쉽기 때문에 코틀린은 이를 지원하지 않는다. 이로 인해 8진수 표기법에 익숙한 개발자들의 혼동을 막기 위해 0이 앞에 붙은 수 리터럴이 금지됐다.
val zero = 0 // OK val zeroOne = 01 // Error
-10과 같은 음수는 기술적으로는 리터럴이 아니다. 음수는 단항 음수 연산자(-)를 리터럴에 적용한 식이다.1
val neg = -10 val negHex = -0xFF
각 정수 타입에는 최솟값(MIN_VALUE)과 최댓값(MAX_VALUE)을 포함하는 상수 정의가 들어있다. 이런 상수를 사용하려면 앞에 타입 이름을 붙여야 한다.
Short.MIN_VALUE // -32768 Short.MAX_VALUE // 32767 Int.MAX_VALUE + 1 // -2147483648(정수 오버플로(overflow))