Отыскать сумму X1 = 0,87654∙101, а Х2 = 0,94567∙102, если для записи мантиссы отводится 5 разрядов.
Согласно методу ∆k = 1 и k1 < k2. Как следует, k = k2 = 2, а мантисса числа X1 должна быть сдвинута на 1 разряд на право (при всем этом из-за ограниченности разрядно сетки пропадет цифра 4). Новенькая мантисса выходит суммированием М = 0,94567 + 0,08765 = 1,03332; так как она выходит за допустимый интервал представления мантисс, нужно его восстановить М’ = 0,10333 (при всем этом пропадает цифра 2 в младшем разряде); k’ = k + 1 = 3. Совсем получаем: X = — 0,10333∙103. Четкий итог суммирования оказался бы 103,3324.
Следствием существования погрешности сложения (и, в равной мере, вычитания) кодов вещественных чисел оказывается то, что такое суммирование не обладает ассоциативностью, т.е. в общем случае
Вычитание нормализованных чисел, как и чисел целых, не является самостоятельной операцией и сводится к сложению с дополнительным кодом числа.
Умножение нормализованных чисел Х1ÄХ2 делается в согласовании с правилами: если как и раньше X1 = M1 ∙ рk1 и Х2 = М2 ∙ pk2, то, разумеется, мантисса произведения М = М1 ∙ M2, а порядок k = k1 + k2; по мере надобности приобретенное число нормализуется.
Операция деления, проводимая как над целыми, так и вещественными числами, приводит в общем случае к возникновению вещественного числа, потому целые числа за ранее преобразуются в вещественный тип, т.е. переводятся в нормализованную форму. Разумеется, при делении Х1ÆХ2 мантисса личного М = М1/М2, а порядок k = k1 — k2. При всем этом конкретно операция деления сводится к сдвигу делителя на право и поочередному вычитанию его из делителя (т.е. сложения с дополнительным кодом вычитаемого). Как и в прошлых операциях, итог деления по мере надобности нормализуется.
В операциях умножения нормализованных чисел в компьютере вероятны ситуации, когда не будут в точности производиться сочетательный и распределительный законы, т.е.
Время выполнения операций с кодами вещественных чисел в форме с плавающей запятой еще больше, ежели с числами целыми либо с фиксированной запятой. По этой причине для ускорения обработки на компьютерах IBM с микропроцессорами Intel 80286 и 80386 ставились так именуемые «математические сопроцессоры»; в современных компьютерах команды (поточнее, микропрограммы, так как они содержат последовательность действий) обработки вещественных чисел включены в список команд центрального микропроцессора.
Заканчивая рассмотрение порядка обработки чисел в компьютере, хотелось бы сделать ряд общих замечаний:
1. В компьютерах арифметические устройства делают деяния не с самими двоичными числами по правилам двоичной математики, а с их двоичными кодами (представлениями) по правилам математики двоичных кодов.
2. Предпосылкой различий правил математики двоичных кодов от правил обыкновенной математики является ограниченность разрядной сетки, используемой для записи чисел в компьютере. По этой же причине отличаются понятия «ноль» и «машинный ноль», «бесконечность» — «максимальное число», а также становится вероятной ситуация переполнения, что просит ее неизменного отслеживания.
3. Применение при вычислениях формы представления чисел с плавающей запятой обеспечивает единообразие при их записи и обработке, и, что принципиально, в итоге автоматического масштабирования числа на каждом шаге его обработки сокращается погрешность вычислений.
4. Различие правил обработки целых и нормализованных чисел приводит к необходимости четкого описания типов переменных перед их внедрением в программках. 2-ая причина описания типов состоит в оптимизации расходования памяти компьютера, так как числа различных типов требуют для хранения разных ресурсов памяти.