Арифметические операции в Kotlin

Проще всего разобраться с операциями можно с помощью арифметики. Операция сложения берет два числа и преобразует их в сумму. Операция вычитания берет два числа и преобразует их в разность. Во всех приложениях вы найдете простую арифметику — от подсчета количества лайков до расчета правильного размера и положения кнопки или окна — числа и правда везде!

Содержание статьи

В этом разделе вы узнаете о различных арифметических операциях, которые предлагает Kotlin. В следующих уроках мы разберем операции для типов, отличных от чисел.

Простые математические операции в Kotlin

Все операции в Kotlin используют символ, известный как оператор, для указания типа осуществляемой операции. Рассмотрим четыре арифметические операции, с которым вы знакомы с первого класса: сложение, вычитание, умножение и деление.

Для данных операций в Kotlin используются следующие операторы:

  • Сложение: +
  • Вычитание: -
  • Умножение: *
  • Деление: /

Данные операторы используются следующим образом:

Каждая из данных строчек является выражением. У выражения есть значение. В данных случаях у всех четырех выражений одинаковые значения: 8. Вы набираете код для выполнения операций по аналогии с написанием примеров на бумаге.

В IDE вы увидите значения выражений в выводе на консоли с помощью команды println():

программа на kotlin

Если хотите, можете убрать пробелы возле оператора:

Разницы нет. Вы можете даже использовать варианты с пробелами и без вперемежку. К примеру:

Однако зачастую удобнее читать выражения с пробелами возле оператора.

Десятичные числа в Kotlin

Во всех операциях выше использовались целые числа, которые относятся к типу integer. Однако не все числа целые.

Рассмотрим следующий пример:

Результатом данной операции будет число 3. Это потому что, если вы используете в выражении только целые числа, Kotlin сделает результат также целым числом. В данном случае результат округляется до ближайшего целого числа.

Вы можете указать Kotlin, что нужно использовать десятичные числа, записав их в следующей форме:

На этот раз результатом будет число 3.142857142857143.

Операция для получения остатка % в Kotlin

Четыре операции, с которыми мы работали до сих пор, легко понять, потому что вы с ними хорошо знакомы в жизни. В Kotlin также есть более сложные операции, которые вы можете использовать. Это стандартные математические операции, только менее распространенные. Рассмотрим их.

Сначала разберем операцию остатка, или операцию по модулю. При делении числителя на знаменатель — результатом будет целое число, а также остаток. Этот остаток и является результатом операции по модулю. Например, 10 по модулю 3 равно 1, потому что 3 трижды переходит в 10 с остатком 1.

В Kotlin оператором остатка является символ %, который используется следующим образом:

В данном случае результатом будет число 8, которое является остатком при делении 28 на 10. Если вам нужно посчитать то же самое, используя десятичные числа, это можно сделать следующим образом:

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

Операции смещения в Kotlin

Операции правого и левого смещения (Shift) принимают двоичную форму десятичного числа и смещают цифры налево или направо соответственно. Затем они возвращают десятичную форму нового двоичного числа.

К примеру, десятичное число 14 в бинарном виде будет состоять из восьми цифр — 00001110. Смещение на два пункта влево приведет к числу 00111000, которое равно 56 в десятичной системе.

Далее дана схема того, что происходит во время операции смещения:

смещение чисел в kotlin

Цифры, которые приходят на замену пустым местам, становятся 0. Отсеченные числа будут потеряны. Смещение вправо аналогично, но цифры сдвигаются в правую часть. Функции Kotlin для данных двух операций являются следующими:

  • Смещение влево: shl
  • Смещение вправо: shr

Это инфиксные функции, которые помещаются между операндами, чтобы вызов функции выглядел как операция. Позже мы подробнее рассмотрим инфиксные функции в Kotlin.

Далее дан пример:

Оба значения равны 8.

Одна из причин использования смещений — облегчить умножение или деление на числа во второй степени. Обратите внимание, что сдвиг влево на единицу — это то же самое, что умножение на два, сдвиг влево на два — это то же самое, что умножение на четыре и так далее. Со смещением вправо ситуация аналогична.

Раньше код часто использовал этот трюк, потому что сдвиг битов для CPU намного проще, чем сложная арифметика умножения и деления. Следовательно, код был быстрее при использовании смещения. Однако в наши дни процессоры намного быстрее, и компиляторы могут даже преобразовывать умножение и деление на числа во второй степени в сдвиги.

Порядок выполнения операций в Kotlin

Высока вероятность, что при вычислении значений вам нужно будет использовать много различных операций. Далее дан пример того, как это можно сделать в Kotlin:

Обратите внимание на использование скобок, у которых в Kotlin две цели: сделать код понятным для чтения и устранить неоднозначность.

Рассмотрим пример:

Результат будет равен 72 (350 делится на 5, а потом прибавляется 2) или 50 (350 делится на 7)? Те, кто хорошо учился в школе, наверняка с уверенностью воскликнут «72»! И будут абсолютно правы!

Kotlin использует так называемый приоритет операторов. Оператор деления (/) имеет более высокий приоритет, чем оператор сложения (+), поэтому в этом примере код сначала выполняет операцию деления.

Если вы хотите, чтобы Kotlin сначала выполнял сложение, то есть возвращал 50, вы можете использовать круглые скобки, например:

Правила приоритета аналогичны тому, что вы изучали в школе по математике. У умножения и деления более высокий, чем у сложения и вычитания.

4.2 5 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x