Какие операции можно выполнять над целыми числами?
Над целыми числами можно выполнять арифметические, сравнительные, логические и битовые операции. Эти операции лежат в основе большинства алгоритмов: счетчиков, циклов, индексации…
Над целыми числами можно выполнять арифметические, сравнительные, логические и битовые операции. Эти операции лежат в основе большинства алгоритмов: счетчиков, циклов, индексации массивов, обработки кодов и вычислений.
Арифметические операции
Сложение
Сложение объединяет два значения.
const sum = 10 + 5; // 15const sum = 10 + 5; // 15package 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; // 5const diff = 10 - 5; // 5package 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; // 24const area = 6 * 4; // 24package 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); // 3const quotient = Math.trunc(7 / 2); // 3package 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; // 011const read = 1; // 001
const write = 2; // 010
const mask = read | write; // 011package 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 с.