Базові типи. Літерали. Числові константи. Допустимі межі числових типів. Приклади
Зміст
- 1. Класифікація базових типів
- 2. Класифікація числових типів. Характеристики типів
- 3. Приклади оголошення та використання цілочисельних типів
- 4. Приклади оголошення та використання типів з плаваючою комою
- 5. Представлення числових констант у шістнадцятковій системі числення
- 6. Представлення числових констант (літералів) у двійковій системі числення
- 7. Представлення числових констант у більш читабельній формі. Символ ‘_’
- 8. Константи MIN_VALUE, MAX_VALUE. Допустимі межі числових типів
- 9. Вивід допустимих значень типів з плаваючою комою. Приклад
- 10. Приклад використання беззнакових цілих типів. Вивід допустимих значень беззнакових типів
- Зв’язані теми
Пошук на інших ресурсах:
1. Класифікація базових типів
Щоб використати у програмі деяку змінну (об’єкт), потрібно точно описати тип цієї змінної. Відповідно до описаного типу визначається призначення змінної у програмі. У мові Kotlin виділено 5 видів базових типів:
- числові типи (числа);
- логічний тип Boolean;
- символьний тип Char;
- рядковий тип String;
- масив Array.
⇑
2. Класифікація числових типів. Характеристики типів
Серед базових типів найбільшою множиною представлені числові типи, які поділяються на дві групи:
- цілочисельні типи Byte, Short, Int, Long;
- типи з плаваючою комою (дійсні типи) Float, Double.
⇑
2.1. Цілочисельні типи
У нижченаведеній таблиці представлені характеристики цілочисельних типів.
Якщо у програмі фігурує ціле число (літерал), то для нього діють наступні правила:
- якщо значення числа не перевищує діапазон значень типу Int, то тип цього цього числа встановлюється як Int;
- якщо значення числа перевищує діапазон значень типу Int, то тип цього числа встановлюється як Long.
Якщо потрібно будь-яке ціле число (навіть невелике) встановити як число типу Long, то до цього числа додається суфікс L. Наприклад 23L, 232323L, 1000023939L.
Приклади цілочисельних літералів
25L 288 -3203 -209320302233L
⇑
2.2. Типи з плаваючою комою
Для чисел з плаваючою комою характерною є наступна таблиця.
Згідно зі стандартом IEEE 754 для чисел з плаваючою комою характерними є наступні твердження:
- тип Float відображає одинарну точність;
- тип Double відображає подвійну точність.
Розділювачем розрядів у числах з плаваючою комою виступає символ ‘ . ‘ (крапка).
Приклади чисел з плаваючою комою
28.5 - тип Double 188.323F - тип Float 22.0f - тип Float
⇑
3. Приклади оголошення та використання цілочисельних типів
Приклад 1. Піднесення до квадрату змінної цілого типу Int.
fun main(args: Array<String>) { // Піднесення до квадрату цілого числа // 1. Оголосити змінну типу Int val n : Int // 2. Ввести n print("n = ") n = readLine().toString().toInt() // 3. Обчислити n*n val square_n = n*n // 4. Вивести результат println("n*n = " + square_n) }
Результат виконання програми
n = 35 n*n = 1225
Приклад 2. Піднести число n у степінь 5 та вивести результат. Використовуються типи Int, Long.
fun main(args: Array<String>) { // Піднесення числа до 5 степеня // 1. Оголосити змінні типу Int та Long val n : Int val res : Long // Результат // 2. Ввести n print("n = ") n = readLine().toString().toInt() // 3. Обчислити n^5 val pow5 : Long pow5 = n.toLong()*n.toLong()*n.toLong()*n.toLong()*n.toLong() // 4. Вивести результат println("n^5 = " + pow5) // n^5 = 10000000000 }
⇑
4. Приклади оголошення та використання типів з плаваючою комою
Приклад 1. Програма обчислення площі круга за введеним радіусом. Демонстрація використання типу Float.
// Підключити математичну бібліотеку. // Потрібно для використання константи PI import kotlin.math.* fun main(args: Array<String>) { // Програма обчислення площі круга за введеним радіусом // 1. Оголосити змінні var s:Float // шукана площа var r:Float // радіус // 2. Ввести радіус print("r = ") r = readLine().toString().toFloat() // 3. Обчислити площу s = (PI*r*r).toFloat() // 4. Вивести результат println("s = " + s) }
Приклад 2. Програма обчислення коренів квадратного рівняння. Як базовий, використано тип Double. У програмі вводяться коефіцієнти рівняння a, b, c.
fun main(args: Array<String>) { // Обчислити корені квадратного рівняння // 1. Оголосити змінні типу Double val a:Double val b:Double val c:Double val D:Double val x1:Double val x2:Double // 2. Ввести a, b, c print("a = ") a = readLine().toString().toDouble() print("b = ") b = readLine().toString().toDouble() print("c = ") c = readLine().toString().toDouble() // 3. Обчислити дискримінант D = b*b-4*a*c // 4. Обчислити корені if (D<0) println("The equation has no roots.") else { // Використати функцію kotlin.math.sqrt() x1 = (-b-kotlin.math.sqrt(D))/(2*a) x2 = (-b+kotlin.math.sqrt(D))/(2*a) println("x1 = " + x1) println("x2 = " + x2) } }
Результат виконання програми
a = 1 b = 1 c = -2 x1 = -2.0 x2 = 1.0
⇑
5. Представлення числових констант у шістнадцятковій системі числення
Цілочисельні константи можуть бути представлені у системі числення з основою 16. У цій системі числення для позначення числа використовуються:
- цифри від 0 до 9;
- букви латинського алфавіту A, B, C, D, E, F або a, b, c, d, e, f.
Кожна шістнадцяткова константа починається з пари символів 0x.
Приклад. Оголошення цілочисельних констант у шістнадцятковій системі числення
val h1 = 0x0A5 // h1 = 165 val h2 = 0x0f8 // h2 = 248
У десятковій системі числення значення h1 рівне 165. Так само значення h2 рівне 248.
⇑
6. Представлення числових констант (літералів) у двійковій системі числення
Цілочисельні константи можуть бути представлені у двійковій системі числення. Щоб відрізнити двійкову систему числення кожна з констант починається з пари символів 0b або 0B. Враховуючи, що константи у двійковій системі, то значення цифр можуть бути 0 або 1.
Приклад.
// Константа у двійковій системі числення val max = 0b11111111 // max = 255 у десятковій системі println("max = " + max) val min = 0B1000 // min = 8 println("min = " + min)
Нижченаведений код викличе помилку “The value is out of range”
val errorValue = 0b00213 // Помилка - тільки цифри 0 або 1
⇑
7. Представлення числових констант у більш читабельній формі. Символ ‘_’
Якщо в програмі використовуються числові константи, що мають велику кількість десяткових знаків, то можна задавати ці константи у зручній формі, розділяючи розряди символом ‘_’.
Приклад 1. Способи представлення числа 1000000000 (один мільярд):
// Звичайне представлення var tt = 1000000000 // Представлення з допомогою символа підкреслення tt = 1_000_000_000 // так зручніше tt = 1000_000_000 // тисячу мільйонів tt = 1_000_0_00_0_00 // так теж можна
Приклад 2. Способи представлення двійкового числа 15
// Звичайне представлення var bin_number = 0b1111 // Представлення з допомогою підкреслення bin_number = 0b1_1_1_1 bin_number = 0b11_11
⇑
8. Константи MIN_VALUE, MAX_VALUE. Допустимі межі числових типів
Для будь-якого числового типу (Int, UByte, Double, …) визначені константи MIN_VALUE та MAX_VALUE, які містять мінімально-можливе та максимально-можливе значення числового типу.
Наприклад, щоб визначити мінімально-можливе значення типу Short у програмі на мові Kotlin потрібно написати наступний вираз
Short.MIN_VALUE
Значення константи Short.MIN_VALUE рівне -32768.
Таким самим чином можна визначити граничні значення будь-якого числового типу: Int, Long, Double, ULong тощо.
⇑
9. Вивід допустимих значень типів з плаваючою комою. Приклад
У прикладі виводяться граничні значення типів Float та Double.
fun main(args: Array<String>) { // Вивести мінімальне та максимальне значення типів з плаваючою комою // 1. Тип Float val minFloat : Float val maxFloat : Float minFloat = kotlin.Float.MIN_VALUE maxFloat = Float.MAX_VALUE println("minFloat = " + minFloat) println("maxFloat = " + maxFloat) // 2. Тип Double val minDouble : Double = Double.MIN_VALUE val maxDouble : Double = Double.MAX_VALUE println("minDouble = " + minDouble) println("maxDouble = " + maxDouble) }
Результат виконання програми
minFloat = 1.4E-45 maxFloat = 3.4028235E38 minDouble = 4.9E-324 maxDouble = 1.7976931348623157E308
⇑
10. Приклад використання беззнакових цілих типів. Вивід допустимих значень беззнакових типів
У прикладі виводиться мінімально-допустиме та максимально-допустиме значення беззнакових типів UByte
fun main(args: Array<String>) { // Вивести мінімальне та максимальне значення беззнакових цілих типів // 1. Тип UByte val minUByte : UByte val maxUByte : UByte minUByte = UByte.MIN_VALUE maxUByte = UByte.MAX_VALUE println("Type UByte: min = " + minUByte + ", max = " + maxUByte) // 2. Тип UShort val minUShort : kotlin.UShort // можна й так val maxUShort : UShort minUShort = UShort.MIN_VALUE maxUShort = kotlin.UShort.MAX_VALUE // можна й так println("Type UShort: min = " + minUShort + ", max = " + maxUShort) // 3. Тип UInt val minUInt : UInt = UInt.MIN_VALUE val maxUInt : UInt = UInt.MAX_VALUE println("Type UInt: min = " + minUInt + ", max = " + maxUInt) // 4. Тип ULong val minULong : ULong = ULong.MIN_VALUE val maxULong : ULong = ULong.MAX_VALUE println("Type ULong : min = " + minULong + ", max = " + maxULong) }
Результат виконання програми
Type UByte: min = 0, max = 255 Type UShort: min = 0, max = 65535 Type UInt: min = 0, max = 4294967295 Type ULong : min = 0, max = 18446744073709551615
⇑
Зв’язані теми
⇑