Теоретический материал по теме "Целочисленная арифметика"

Целочисленная арифметика

Д.П. Кириенко - Программирование на языке Python (школа 179 г. Москвы)

Для целых чисел определены ранее рассматривавшиеся операции * и **. Операция деления / для целых чисел всегда возвращает значение типа float. Также функция возведения в степень возвращает значение типа float, если показатель степени - отрицательное число.

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

print(17 // 3)

выведет 5

print(-17 // 3)

выведет -6

Другая близкая ей операция: это операция взятия остатка от деления, обозначаемая %:

print(17 % 3)

выведет 2

print(-17 % 3)

выведет 1

Формальное определение деления с остатком такое. Если есть два числа А и В (при этом В не равно 0), то деление А на В с остатком - это нахождение таких целых чисел Q (частное) и R (остаток), что А = В * Q + R

При этом если В > 0, то 0 <= R < В, а если В < 0, то В < R <= 0 (то есть остаток имеет такой же знак, что и делитель).

Внимание! Деление с остатком в других языках программирования (например, Паскале, Си, Бейсике) для отрицательных делимого или делителя может давать другой результат! Это связано с особенностью реализации операции деления в процессоре.

Одно из наиболее распространенных применений операции деления с остатком - это анализ цифр десятичной записи числа. А именно, деление числа нацело на 10 (операция n // 10) - это отбрасывание последней цифры десятичной записи числа, а остаток от деления на 10 (n % 10) - это последняя цифра числа.