Операции с узкими целыми в Kotlin
Давайте теперь посмотрим, что получается при
сложении узких целых Byte и Short.
Сумму двух Byte нельзя сразу записать
в переменную типа Byte. Такая запись
дает ошибку. Программа не собирается:
val num1: Byte = 10
val num2: Byte = 20
val num3: Byte = num1 + num2 // программа не собирается
Kotlin считает эту сумму в более широком типе
Int. Вывести ее можно и так:
val num1: Byte = 10
val num2: Byte = 20
val num3 = num1 + num2 // Int
println(num3) // 30
Чтобы положить сумму обратно в Byte,
вызывают toByte у всей суммы. Скобки
нужны, чтобы функция применилась к результату
сложения:
val num1: Byte = 10
val num2: Byte = 20
val num3: Byte = (num1 + num2).toByte()
println(num3) // 30
Сумма входит в диапазон Byte, поэтому
значение остается тем же.
У Short правило то же. Сумма имеет тип
Int, обратно ее кладут через toShort:
val num1: Short = 100
val num2: Short = 25
val num3: Short = (num1 + num2).toShort()
println(num3) // 125
У двух UByte и у двух UShort сумма
имеет тип UInt. Обратно ее кладут через
toUByte и toUShort.
Разность считают так же:
val num1: Byte = 20
val num2: Byte = 8
val num3: Byte = (num1 - num2).toByte()
println(num3) // 12
Произведение считают так же:
val num1: Byte = 4
val num2: Byte = 5
val num3: Byte = (num1 * num2).toByte()
println(num3) // 20
Частное считают так же:
val num1: Byte = 20
val num2: Byte = 4
val num3: Byte = (num1 / num2).toByte()
println(num3) // 5
Даны две переменные:
val num1: Short = 40
val num2: Short = 15
Найдите сумму этих переменных, запишите ее в переменную того же типа, что и num1, и выведите ее.
Даны две переменные:
val num1: Short = 80
val num2: Short = 12
Найдите разность этих переменных, запишите ее в переменную того же типа, что и num1, и выведите ее.
Даны две переменные:
val num1: Byte = 6
val num2: Byte = 7
Найдите произведение этих переменных, запишите его в переменную того же типа, что и num1, и выведите его.
Даны две переменные:
val num1: UByte = 12u
val num2: UByte = 20u
Найдите сумму этих переменных, запишите ее в переменную того же типа, что и num1, и выведите ее.
Даны две переменные:
val num1: UShort = 100u
val num2: UShort = 25u
Найдите частное этих переменных, запишите его в переменную того же типа, что и num1, и выведите его.