программирование на языке бейсик

 

УРОК 4. Представление чисел с плавающей точкой

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

Существует несколько видов вещественных переменных, из которых наиболее часто используется два представления: с простой точностью и с двойной. Рассмотрим их подробней.

Прежде всего введем понятие нормализации. Для того, чтобы представить число, нужно его нормализовать, то есть представить как некоторое число, большее 1 и меньшее 2 в двоичном представлении. Например, 101b = 1,01bх22, а 0,00101b = 1,01bх2-3. В памяти машины хранится (для числа 1,01bх2-3) сначала знак числа (плюс), затем знак показателя (минус), показатель степени (3) и значащие цифры (101b). Значащие цифры при этом дополняются справа нулями, причем количество цифр определяется количеством разрядов, выделенных для числа.

Попробуем представить число 1101b. Прежде всего нормализуем его, получим 1,101bх2-4. Затем запишем его составные части: 1. знак числа (+), 2. знак порядка (-), 3. значение порядка (4), 4. значение дробной части (101). Для знаков числа и порядка используется по одному биту, для значений порядка и дробной части числа применяется количество бит, которое зависит от вида числа.

Короткое вещественное число имеет восемь бит для определения порядка, 23 бита - для значащих цифр (плюс один бит на знак числа), всего 32 бита. Двойное вещественное число содержит восемь бит для порядка и 63 бита для значащих цифр, один бит на знак числа, всего 64 бита. Существуют и другие форматы: расширенный, действительный, длинное и другие вещественные числа, разница между которыми заключается в количестве выделенных для порядка и мантиссы числа позиций.

При описании любого языка программирования дается описание диапазона приемлемых значений вещественного числа, которое состоит из двух диапазонов: один для порядка, другой для значащих цифр. В силу того, что число находится в компьютере в двоичном представлении, иногда требуется две цифры для обозначения значения, например, число одинарной точности в языке Паскаль имеет 7-8 значащих цифр.

Короткое представление числа имеет размер 4 байта, 7-8 значащих цифр, порядок числа может быть от 10–45 до 10+38. Длинное число имеет размер 8 байт, 15-16 значащих цифр, порядок числа может быть от 10–324 до 10+308.

Если целое число прибавить к другому целому и результат будет больше, чем выделено для хранения, то произойдет переполнение и в результате выдано сообщение об ошибке. То же может произойти с вещественными числами, когда происходит сложение двух больших чисел или их умножение, например, перемножив числа 10+37 х 10+36 = 10+73, получим значение порядка, которое превышает предельное значение для короткого вещественного числа.

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

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

На экране может появиться число в вещественном представлении, например, 42.012Е+02, что обозначает 4201,2. Число в этой записи имеет мантиссу (42,012) и характеристику (Е+02). Характеристика имеет следующие части: Е- обозначает основание десятичной системы, а «+02» - порядок числа. Окончательно число вычисляется по формуле 42,012х 102 = 42,012х100 = 4201,2. Если число отрицательное, то перед ним ставится знак минус, если порядок числа отрицательный, то в характеристике также ставится знак минус. Данная запись часто применяется в таблицах, когда имеет полный положительный или отрицательный порядок, то есть содержит много нулей. Например, число 0,000012 проще представить как 12Е-6, а 120000 как 12Е+4, что приводит к уменьшению занимаемых числом позиций.

Если нужно выполнить операции сложения или вычитания с вещественными числами, записанными в десятичной системе счисления, то вначале приведите операнды к одному порядку и выполните операцию как обычно. Например, 22Е+11 + 32Е+10 = 220Е+10 + 32Е+10 = 252Е+10.

При операциях умножения (деления) выполните операцию умножения (деления) для операндов и сложите (вычтите) их порядки. Например, 12Е+2 х 5Е+3 = 60Е+5 = 6Е+6.

Задачи.

1. Нормализуйте числа: а) 1101.1b б) 0.0001b в) 10.00011 г) 11.1101b.

2. Выполните операции: а) 12Е+2 + 101Е+1 б) 15Е+2 х 8Е-1 в) 6Е+1 : 5


(переход на следующую страницу)

 

О↙О↘О↙О↘О↙О↘О↙О↘О↙О↘О↙О↘О↙О↘О↙О↘О











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

Запрещается использовать материалы для получения личной финансовой выгоды, а также размещать на сайтах в интернете.


 
 
 
Яндекс.Метрика


Каталог@MAIL.RU - каталог ресурсов интернет