Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Машинные формы представления чиселСуществуют два основных способа представления данных в ЭВМ: с фиксированной и плавающей запятой. Представление чисел в форме с фиксированной запятой. Для сокращения длины разрядной сетки и упрощения обработки данных положение запятой может быть зафиксировано схемотехнически. При этом в слове данных сохраняются только две структурных компоненты: поле знака и поле цифр.
Определим диапазон представления чисел для этого формата. Аmax=(2k-1)+(1-2-l), где k - число разрядов целой, а l – дробной части числа (k+l=n). В зависимости от размеров целой и дробной частей возможно следующее:
Очевидно, что ограничение длины разрядной сетки приводит к ограничению диапазона хранимых чисел и потере точности их представления. Поэтому на практике широко используется и другая форма представления чисел.
Возможно четыре формата целых чисел: целое число; короткое целое число; длинное целое число; упакованное десятичное число.
Целое число занимает два байта. Его формат полностью соответствует используемому центральным процессором. Для представления отрицательных чисел используется дополнительный код. Короткое целое и длинное целое имеют аналогичные форматы, но занимают, соответственно, 4 и 8 байтов.
Упакованное десятичное число занимает 10 байтов. Это число содержит 18 десятичных цифр, расположенных по две в каждом байте. Знак упакованного десятичного числа находится в старшем бите самого левого байта. Остальные биты старшего байта должны быть равны 0.
Существуют команды сопроцессора, которые преобразуют числа в формат упакованных десятичных чисел из внутреннего представления в расширенном вещественном формате. Если программа делает попытку преобразования в упакованный формат денормализованных чисел, нечисел, бесконечности и т.п., в результате получается неопределенность. Неопределенность в упакованном формате представляет из себя число, в котором два старших байта содержат единицы во всех разрядах. Содержимое остальных восьми байтов произвольно. При попытке использовать такое упакованное число в операциях фиксируется ошибка.
Приведем возможные варианты представления целых чисел: Нуль 0...0 Наименьшее положительное число 0...1 Наибольшее отрицательное число 1...1 Наибольшее положительное число 01...1 Наименьшее отрицательное число 10...01 Неопределенность 10...00
Упакованное десятичное число имеет следующий вид: ¦1-й байт ¦ Девять байтов ¦ +--T------+---T---T---T---T---+ ¦Зн¦000000¦n17¦n16¦...¦n1 ¦n0 ¦ L--+------+---+---+---+---+----
На этом рисунке n0...n17 означают разряды десятичного числа. Они могут изменяться в пределах от 0000 до 1001, т.е. от 0 до 9 в десятичной системе счисления.
Теперь, после того как мы рассмотрели форматы данных, с которыми может работать арифметический сопроцессор, можно перейти к изучению внутренних регистров сопроцессора.
Представление чисел в форме с плавающей точкой. Прежде чем говорить о форматах вещественных чисел, используемых в ЭВМ, вспомним о числах с плавающей точкой, встречающихся в научных расчетах. Общий вид этих чисел можно записать следующим образом: A=±mAr±pA, где r – основание системы счисления, в которой записано число, mA- мантисса, а рA- порядок числа А. Порядок (с учетом знака) показывает, на сколько разрядов и в какую сторону сдвинута запятая при замене формы записи числа с естественной на нормальную. Например, А10 = 239,745 = 0,239745·103 = 239745·10-3. Наиболее распространено и удобно для представления ограничение вида r-1≤½mA½<1. Форма представления чисел, для которых справедливо данное ограничение, называется нормализованной. Так как абсолютное значение мантиссы в этом случае лежит в диапазоне от r-1 до 1-r-n, где n – число разрядов мантиссы без знака, то положение разрядов числа в его машинном изображении непостоянно. Отсюда и название этой формы представления чисел – с плавающей точкой. Однако реализация в ЭВМ нормализованных чисел имеет некоторые особенности. Число с плавающей точкой называется нормализованным, если целая часть мантиссы числа состоит из одной, не равной нулю, цифры. В чем преимущества использования нормализованных чисел? В том, что для фиксированной разрядной сетки числа (т.е. для фиксированного количества цифр в числе) нормализованные числа имеют наибольшую точность. Кроме того, нормализованное представление исключает неоднозначность - каждое число с плавающей точкой может быть представлено различными (ненормализованными) способами: 123.5678·105 = 12.35678·106 = 1.235678·107 = 0.1235678·108 Формат машинного изображения чисел с плавающей точкой должен включать знаковые поля (мантиссы и порядка), поле мантиссы и поле порядка числа и имеет следующий вид:
Для данного формата разрядной сетки можно записать следующий диапазон представления чисел:
В языках высокого уровня используется следующее представление чисел с плавающей точкой: (знак)(мантисса)E(знак)(порядок) Например, -5.35E-2 означает число -5.35·10-2. Такое представление называется научной нотацией. В зависимости от типа данных числа с плавающей запятой в памяти ЭВМ хранятся в одном из следующих трех форматов: - одинарной точности; - двойной точности; - расширенной точности. Эти числа занимают в памяти, соответственно, 4, 8 или 10 байтов. Для упрощения операций над порядками применяют представление чисел с плавающей запятой со смещенным порядком: p¢=p+N, где N – целое положительное число (смещение), N= max(-p). Обычно N=2k, где k- число двоичных разрядов в поле цифр несмещенного порядка. В этом случае поле знака порядка избыточно, так как p¢ всегда положительно. Такие смещенные порядки называют характеристиками. Поле характеристики - это степень числа 2, на которую умножается мантисса, плюс смещение, равное 127 для одинарной точности, 1023 - для двойной точности и 16383 - для расширенной точности.
В любом из форматов старший (знаковый) бит определяет знак вещественного числа: - 0 - положительное число; - 1 - отрицательное число. Все равные по абсолютному значению положительные и отрицательные числа отличаются только этим битом. В остальном числа с разным знаком полностью симметричны. Для представления отрицательных чисел здесь не используется дополнительный код, как это сделано для чисел с фиксированной точкой. В поле мантиссы содержится мантисса нормализованного числа. Для двоичного представления чисел, если целая часть мантиссы числа равна 1, то число с плавающей точкой называется нормализованным. Так как для нормализованного двоичного числа целая часть всегда равна единице, то эту единицу можно не хранить. В форматах одинарной и двойной точности целая часть мантиссы не хранится. Таким образом, экономится один бит памяти. Формат представления чисел с расширенной точностью используется для выполнения всех операций. Более того, все операции с числами выполняются только в формате с расширенной точностью. В этом формате хранится и "лишний" бит целой части нормализованного числа. Основная причина использования для вычислений расширенной точности - предохранение программы от возможной потери точности вычислений, связанной с большими различиями в порядках чисел, участвующих в арифметических операциях. Для того, чтобы определить абсолютное значение числа с плавающей точкой, можно воспользоваться следующими формулами: - одинарная точность: 1.(цифры мантиссы)*2(P-127) - двойная точность: 1.(цифры мантиссы)*2(P-1023) - расширенная точность: 1.(цифры мантиссы)*2(P-16383) Приведем конкретный пример машинного представления числа, например, -0,875 в формате с одинарной точностью, которое в двоичном виде выглядит следующим образом: 1 01111110 11000000000000000000000 Для этого числа знаковый бит равен 1 (отрицательное число), расширенный порядок (характеристика) равен 126, мантисса - 11 (в двоичной системе счисления). Значение этого числа вычисляется: 1.11 · 2(126-127) = -1.75 · 2-1 = -0,875
В стандарте IEEE крайние значения порядка (характеристики) зарезервированы и не используются для представления обычных чисел. Рассмотрим некоторые особые случаи представления вещественных чисел. - Нуль - это такое число, у которого порядок и мантисса равны нулю. Нуль может иметь положительный или отрицательный знаки, которые игнорируются в операциях сравнения. Таким образом, имеется два нуля - положительный и отрицательный. - Наименьшее положительное число - это число, которое имеет нулевой знаковый бит, значение порядка, равное 1, и значение мантиссы, равное нулю. В зависимости от представления наименьшее положительное число имеет следующие значения: 1,17·10-38 (одинарная точность), 2.23·10-308 (двойная точность), 3.37·10-4932 (расширенная точность). - Наибольшее отрицательное число - полностью совпадает с наименьшим положительным числом, но имеет бит знака, установленный в 1. - Наибольшее положительное число -это число, которое имеет нулевой знаковый бит, поле порядка, в котором все биты кроме самого младшего, равны 1, и содержит единицы во всех разрядах мантиссы. В зависимости от представления наибольшее положительное число имеет следующие значения: 3.37·1038 (одинарная точность), 1.67·10308 (двойная точность), 1.2·104932 (расширенная точность). - Наименьшее отрицательное число - полностью совпадает с наибольшим положительным числом, но имеет бит знака, установленный в 1. - Положительная и отрицательная бесконечность - это число содержит все единицы в поле порядка и все нули в поле мантиссы. В зависимости от состояния знакового бита может быть положительная и отрицательная бесконечности. Бесконечность может получиться, например, как результат деления конечного числа на нуль. - Нечисло - содержит все единицы в поле порядка и любое значение в поле мантиссы. Нечисло может возникнуть в результате выполнения неправильной операции при замаскированных особых случаях (ошибкам при работе с сопроцессоре будет посвящен отдельный раздел этой главы). - Неопределенность - содержит в поле порядка все единицы, а в поле мантиссы - число 1000..0 (для одинарной и двойной точности) или 11000..0 (для расширенной точности, так как в этом формате хранится старший бит мантиссы). Отмеченные особые случаи могут быть наглядно представлены следующим образом: ¦0¦ 0...0 ¦ 0...0 ¦ положительный нуль ¦1¦ 0...0 ¦ 0...0 ¦ отрицательный нуль ¦0¦ 0...01 ¦ 0...0 ¦ наименьшее положительное число ¦1¦ 0...01 ¦ 0...0 ¦ наибольшее отрицательное число ¦0¦ 11...10 ¦ 1...1 ¦ наибольшее положительное число ¦1¦ 11...10 ¦ 1...1 ¦ наименьшее отрицательное число ¦0¦ 1...1 ¦ 0...0 ¦ положительная бесконечность ¦1¦ 1...1 ¦ 0...0 ¦ отрицательная бесконечность ¦1¦ 1...1 ¦ х...х ¦ нечисло ¦1¦ 1...1 ¦ 10...0 ¦ неопределенность При выполнении арифметических операций над числами с плавающей запятой может получаться результат, выходящий за пределы диапазона представления чисел, при этом выход за правую границу диапазона принято называть переполнением порядка (получение очень большого числа), а выход за левую границу – исчезновением порядка (потерей порядка) – получение очень малого числа, близкого к нулю.
|
|||||||||||||||||
|
Последнее изменение этой страницы: 2016-04-08; просмотров: 771; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.10 (0.007 с.) |