Арифметические операции в 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
13 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
trackback
2 дней назад

ordering enclomiphene no prescription mastercard

how to buy enclomiphene cheap online canada

trackback
2 дней назад

générique kamagra pas cher

acheter kamagra en ligne canada

trackback
2 дней назад

online order androxal generic does it work

buying androxal usa cheap

trackback
2 дней назад

dutasteride no script required express delivery

cheapest buy dutasteride uk generic

trackback
2 дней назад

discount store buy flexeril cyclobenzaprine

order flexeril cyclobenzaprine no rx needed

trackback
2 дней назад

purchase gabapentin canada online order

what do you tell your doctor to get some gabapentin

trackback
2 дней назад

cheapest buy fildena without recipe

ordering fildena purchase england

trackback
2 дней назад

how to order itraconazole cheap canada pharmacy

online order itraconazole uk cheap purchase buy

trackback
2 дней назад

buy cheap staxyn generic london

cheap staxyn generic europe

trackback
2 дней назад

cheap avodart uk cheapest

buy cheap avodart purchase uk

trackback
2 дней назад

online order rifaximin how to purchase viagra

buy rifaximin uk buy online

trackback
1 день назад

buy cheap xifaxan us prices

ordering xifaxan purchase usa

trackback
1 день назад

koupit kamagra bez lékařského předpisu

kamagra na dobírku přes noc

13
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x