До сих пор в рассматриваемых представлениях, формулах и алгоритмах на длину записи числа не накладывалось никаких ограничений: количество цифр слева и справа от точки могло быть сколь угодно большим (но конечным, иначе формулы и алгоритмы становятся невычислимыми!) При вычислениях «на бумажке» не возникает проблем с увеличением разрядности чисел, скажем, при умножении: нужные цифры, всегда можно дописать. В машинной памяти на запись числа накладываются ограничения по длине, из-за чего при вычислениях могут возникать такие ситуации, как переполнение и потеря точности. Особенности машинной арифметики, рассматриваемой в этом разделе, связаны со свойствами различных форматов кодирования чисел в разрядной сетке и требуют правильной организации процесса вычислений с учетом возможных ошибок и минимизации погрешности.
Как и прежде, если не оговорено иное, все результаты верны для произвольной с. с. (без уточнения основания), хотя в первую очередь подразумеваются двоичная с. с.
Безусловно, одним из основных направлений применения компьютеров были и остаются разнообразные вычисления. В связи с этим встает вопрос о выборе оптимального представления чисел в компьютере. Безусловно, можно было бы использовать 8-битное (байтовое) кодирование отдельных цифр, а из них составлять числа. Однако такое кодирование не будет оптимальным, что легко увидеть из простого примера: пусть имеется двузначное число 13; при 8-битном кодировании отдельных цифр в кодах ASCII его представление выглядит следующим образом: 0011000100110011, т.е. код имеет длину 16 бит; если же определять это число посредством двоичного выборного каскада ,то получим 4-битную цепочку 1101.
Важно, что представление определяет не только способ записи данных (букв или чисел), но и допустимый набор операций над ними; в частности, буквы могут быть только помещены в некоторую последовательность (или исключены из нее) без изменения их самих; над числами же возможны операции, изменяющие само число, например, извлечение корня или сложение с другим числом. Представление чисел в компьютере по сравнению с формами, известными всем со школы, имеет два важных отличия:
во-первых, числа записываются в двоичной системе счисления (в отличие от привычной десятичной);
во-вторых, для записи и обработки чисел отводится конечное количество разрядов (в «некомпьютерной» арифметике такое ограничение отсутствует).
Алгоритм внутреннего представления целого положительного числа N, хранящегося в k-разрядном машинном слове:
- Перевести число N в двоичную СС
- Полученный результат дополнить слева незначащими нулями до k разрядов.