Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Целочисленная арифметика.doc
Скачиваний:
4
Добавлен:
09.09.2019
Размер:
313.86 Кб
Скачать

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

Целые числа

Значение и запись числа

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

Несмотря на всю очевидность этих утверждений, понимание существенных различий между количеством и записью часто вызывает сложности. Попробуем разобраться в этом.

Количество абсолютно. Независимо от того, на каком языке мы думаем и говорим, независимо от того, каким способом мы записываем числа, три — это всегда три, а семь — всегда семь.

Запись числа относительна. Число, которое по-русски называется СЕМЬ, по-английски называется SEVEN. В десятичной системе это число записывается как 7, в троичной — 21, а б двоичной — 111. В римской записи то же самое число выглядит так: VII. Но все эти записи соответствуют одному и тому же количеству. Это и означает, что запись относительна, а количество абсолютно, то есть не зависит от записи.

Рассмотрим, например, два элементарных факта: число 1999 простое, в числе 1999 три девятки. Они относятся к разным объектам: первый характеризует количество, второй — форму записи числа. Тот факт, что число 1999 простое, никак не зависит от того, каким способом мы это число записываем. Это характеристика числа как такового, характеристика количества. А три девятки в этом числе возникают благодаря десятичной записи.

Этот пример еще раз показывает абсолютность количества и относительность записи.

Воспринимая число, человек часто не отделяет количество от привычной формы записи. Простота числа 1999 и наличие в нем трех девяток многие воспринимают как факты одного порядка, как характеристики одного и того же объекта. Мы легко оперируем такими понятиями, как "количество цифр" и "первая цифра числа", не уточняя, что речь при этом идет не о числе, а о его записи, и часто даже не задумываемся об этом.

В обыденной жизни и в математике на уровне начальной школы такая вольность вполне допустима, но для программиста она уже непростительна. Давайте с самого начала четко разграничивать понятия и называть число числом, а запись — записью.

Целые числа и компьютер

Как представлены числа в компьютере? Что хранится в памяти — число или запись? Ответ на этот вопрос не так прост, как может показаться на первый взгляд.

С одной стороны, собственно число, количество — это абстракция. Чтобы передать информацию о числе, его нужно как-то закодировать, записать, придать ему форму. Компьютер — не исключение, для хранения чисел они должны быть закодированы, то есть каким-то образом записаны. Совершенно не обязательно, чтобы это была привычная нам десятичная форма записи, но какая-то форма необходима.

С другой стороны, обработка целых чисел сводится к небольшому набору арифметических операций, а результат операций определяется числом, а не его записью. И в программах целые числа чаше всего используются именно как числа, независимо от формы их внутреннего представления.

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

Правильная программа должна оставаться правильной независимо от внутреннего представления чисел, а значит, она должна иметь дело с числом, а не с его записью.

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