Операции с числовыми типами в Kotlin

Kotlin поддерживает стандартный набор арифметических операций над числами (+ - * / %), которые объявлены как члены соответствующих классов (но компилятор оптимизирует вызовы до соответствующих инструкций).

Деление целых чисел

Обратите внимание, что деление между целыми числами всегда возвращает целое число. Любая дробная часть отбрасывается. Например:

val x = 5 / 2
//println(x == 2.5) // ERROR: Operator '==' cannot be applied to 'Int' and 'Double'
println(x == 2)

Это верно для деления между любыми двумя целочисленными типами.

val x = 5L / 2
println(x == 2L)

Чтобы вернуть тип с плавающей точкой, явно преобразуйте один из аргументов в тип с плавающей точкой.

val x = 5 / 2.toDouble()
println(x == 2.5)

Побитовые операции

Что касается побитовых операций, то для них нет специальных символов, а только именованные функции, которые можно вызывать в инфиксной форме, например:

val x = (1 shl 2) and 0x000FF000

Вот полный список побитовых операций (доступно только для Int и Long):

  • shl(bits) - сдвиг со знаком влево
  • shr(bits) - сдвиг вправо со знаком
  • ushr(bits) - беззнаковое смещение вправо
  • and(bits) - побитовое И
  • or(bits) - побитовое ИЛИ
  • xor(bits) - побитовое xor
  • inv() - побитовая инверсия

Читайте также:


Комментарии

Популярные сообщения из этого блога

Строки в Kotlin

Наследование в Kotlin

Возврат и прыжки в Kotlin