Операции с числовыми типами в 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: представление, явные преобразования
Комментарии
Отправить комментарий