Какие операции можно выполнять над целыми числами?

Над целыми числами можно выполнять арифметические, сравнительные, логические и битовые операции. Эти операции лежат в основе большинства алгоритмов: счетчиков, циклов, индексации…

Над целыми числами можно выполнять арифметические, сравнительные, логические и битовые операции. Эти операции лежат в основе большинства алгоритмов: счетчиков, циклов, индексации массивов, обработки кодов и вычислений.

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

Сложение

Сложение объединяет два значения.

const sum = 10 + 5; // 15
const sum = 10 + 5; // 15
package main
func main() {
  sum := 10 + 5 // 15
}
public class Example {
  public static void main(String[] args) {
    var sum = 10 + 5; // 15
  }
}
sum = 10 + 5 # 15

Вычитание

Вычитание показывает разность чисел.

const diff = 10 - 5; // 5
const diff = 10 - 5; // 5
package main
func main() {
  diff := 10 - 5 // 5
}
public class Example {
  public static void main(String[] args) {
    var diff = 10 - 5; // 5
  }
}
diff = 10 - 5 # 5

Умножение

Умножение используется для масштабирования и повторного сложения.

const area = 6 * 4; // 24
const area = 6 * 4; // 24
package main
func main() {
  area := 6 * 4 // 24
}
public class Example {
  public static void main(String[] args) {
    var area = 6 * 4; // 24
  }
}
area = 6 * 4 # 24

Целочисленное деление

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

Например, 7 / 2 дает 3 при целочисленном делении.

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

const quotient = Math.trunc(7 / 2); // 3
const quotient = Math.trunc(7 / 2); // 3
package main
func main() {
  quotient := 7 / 2 // 3
}
public class Example {
  public static void main(String[] args) {
    var quotient = 7 / 2; // 3
  }
}
quotient = 7 # 2 // 3

Остаток от деления

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

const remainder = 17 % 5; // 2
const isEven = 10 % 2 === 0;
const remainder = 17 % 5; // 2
const isEven = 10 % 2 === 0;
package main
func main() {
  remainder := 17 % 5 // 2
  isEven := 10 % 2 == 0
}
public class Example {
  public static void main(String[] args) {
    var remainder = 17 % 5; // 2
    var isEven = 10 % 2 == 0;
  }
}
remainder = 17 % 5 # 2
isEven = 10 % 2 == 0

Операции сравнения

Целые числа можно сравнивать:

Результат сравнения — логическое значение.

const canAccess = age >= 18;
const canAccess = age >= 18;
package main
func main() {
  canAccess := age >= 18
}
public class Example {
  public static void main(String[] args) {
    var canAccess = age >= 18;
  }
}
canAccess = age >= 18

Операции изменения значения

Для счетчиков часто используют увеличение и уменьшение на единицу.

let i = 0;
i = i + 1;
i++;
i--;
let i = 0;
i = i + 1;
i++;
i--;
package main
func main() {
  i := 0
  i = i + 1
  i++
  i--
}
public class Example {
  public static void main(String[] args) {
    var i = 0;
    i = i + 1;
    i++;
    i--;
  }
}
i = 0
i = i + 1
i += 1
i -= 1

Битовые операции

Целые числа можно рассматривать как набор битов.

Основные битовые операции:

Они используются в системном программировании, кодировании флагов, масках доступа и оптимизациях.

const read = 1;      // 001
const write = 2;     // 010
const mask = read | write; // 011
const read = 1;      // 001
const write = 2;     // 010
const mask = read | write; // 011
package main
func main() {
  read := 1 // 001
  write := 2 // 010
  mask := read | write // 011
}
public class Example {
  public static void main(String[] args) {
    var read = 1;      // 001
    var write = 2;     // 010
    var mask = read | write; // 011
  }
}
read = 1 # 001
write = 2 # 010
mask = read | write # 011

Особенности операций

При операциях над целыми числами важно учитывать:

Вывод

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

Источники

  • Семакин И.Г. Основы программирования и баз данных. Учебник. - М.: Академия, 2014. - 224 с.
  • Симонова Е.В. Структуры данных в C#. Линейные и нелинейные динамические структуры. - Лань, 2018. - 152 с.
  • Бертран Мейер. Почувствуй класс. Учимся программировать хорошо с объектами и контрактами. - М.: Национальный Открытый Университет "ИНТУИТ": БИНОМ. Лаборатория знаний, 2011. - 775 с.
  • Мэтт Вайсфельд. Объектно-ориентированное мышление. - СПб.: Питер, 2014. - 304 с.
  • Ривест Р., Штайн К., Лейзерсон Ч., Кормен Т. Алгоритмы: построение и анализ. - М.: Вильямс, 2007. - 1296 с.
  • Стивенс Род. Алгоритмы. Теория и практическое применение. - М.: Эксмо, 2017. - 544 с.
  • Рублев В.С. Основы теории алгоритмов. - 2-е издание, исправленное. - М.: Научный мир, 2008. - 128 с.
  • Гольдберг Г.Л. Основы алгоритмизации и программирования. - М.: Академия, 2012. - 384 с.
  • Лаврищева И.В. Технология программирования. - М.: Горячая линия - Телеком, 2011. - 400 с.
  • Сергеев И.С., Сухоруков А.И., Шестаков А.А. Программирование: учебник для вузов. - М.: БИНОМ. Лаборатория знаний, 2013. - 512 с.