Форматы представления вещественных чисел

Форматы представления вещественных чисел

Числовые данные, с которыми оперирует система MATLAB, в памяти компьютера представлены вещественными или комплексными значениями в формате double. Это означает, что каждое вещественное число занимает 8 байт в оперативной памяти и принимает по модулю значения из диапазона , количество значащих цифр при этом теоретически достигает 16-17. Комплексное число, представленное действительной и мнимой частями в том же формате, занимает соответственно 16 байт. Именно с такой точностью теоретически система MATLAB выполняет все вычисления. Однако при отображении числовых результатов на экране монитора часть значащих цифр отбрасывается согласно установленному формату вывода.

Как правило, числа выводятся с небольшим количеством значащих цифр: целые – не более, чем с 9 цифрами; вещественные с фиксированной точкой – не более, чем с 4 цифрами в дробной части; очень большие или очень маленькие (в том числе по модулю) числа – в формате с плавающей точкой и пятью значащими цифрами. Отображаемые значения округляются по общепринятым в математике правилам (таблица 2.5.1).

Таблица 2.5.1. Примеры отображаемых числовых значений.

>> x=123456789 x = >> x=10/6 x = 1.6667 >> x=1/100 x = 0.0100
>> x=1234567890 x = 1.2346e+09 >> x=100/6 x = 16.6667 >> x=1/1000 x = 1.0000e-03
>> x=1/60 x = 0.0167 >> x=1000/6 x = 166.6667 >> x=123.456789 x = 123.4568
>> x=1/6 x = 0.1667 >> x=10000/6 x = 1.6667e+03 >> x=1234.56789 x = 1.2346e+03

Поясняя данные таблицы 2.5.1 следует подчеркнуть, что в системе MATLAB, как и в языке программирования FORTRAN для представления чисел (как вещественных, так и целых) используется формат с плавающей точкой (научный формат), в котором любое число задается мантиссой и показателем степени, и записываются в следующем виде:

1.2346e+09; 1.0000e-03; 1.6667e+03; 1.2346e+03

где буквой e обозначается основание степени, равное 10. Максимальное и минимальное по модулю числа в MATLAB соответственно равны

Для этих чисел зарезервированы имена realmax и realmin.

Отметим еще одно важное отличие реализации вычислений в системе MATLAB и языке программирования FORTRAN. Результаты вычисления значений x=10/6, x=1/100, x=100/6 при выполнении соответствующей программы на языке FORTRAN равны соответственно 1, 0 и 16 (результат операций с целыми числами – целое число, т.е. дробная часть результата отбрасывается и чтобы этого не происходило по правилам языка FORTRAN следует записать x=10./6., x=1./100., x=100./6.), тогда как в MATLAB сразу получаем естественные с точки зрения математики значения указанных выражений (с учетом округлений), равные соответственно 1.6667, 0.0100 и 16.6667.

Для отображения чисел в командном окне MATLAB могут использоваться следующие форматы: short(используется по умолчанию для вывода вещественных чисел и предусматривает отображение только четырех десятичных цифр после десятичной точки), longдля более полного представления вещественных чисел), ratили иначе rational(для отображения вещественных чисел в виде обыкновенных дробей; в данном формате операнды и результаты вычислений, являющихся целыми числами, в командном окне MATLAB отображаются в виде целых чисел, хотя в памяти компьютера они представляются так же, как и дробные числа).

Читайте также:  Как пользоваться яндекс музыкой бесплатно на андроид

Чтобы использовать, например формат long следует ввести с клавиатуры команду

Таблица 2.5.2 поясняет вышеперечисленные форматы вывода числовых данных (следует отметить, что значение переменной x не зависит от установленного формата вывода).

Таблица 2.5.2. Форматы вывода числовых данных в системе MATLAB.

>> format short >> x=sqrt(2) x = 1.4142 >> format short e >> x=sqrt(2) x = 1.4142e+00
>> format long >> x=sqrt(2) x = 1.414213562373095 >> format long e >> x=sqrt(2) x = 1.414213562373095e+00
>> format rational >> x=sqrt(2) x = 1393/985

Дополняя данные таблицы 2.5.2, отметим, что форматы short g и long g представляют собой гибрид между соответствующими форматами вывода с фиксированной и плавающей точкой. Формат bank позволяет оперировать с финансами, сохраняя в дробной части числа два знака, соответствующие мелким денежным единицам. Формат + обеспечивает обязательный вывод знака даже у положительных чисел. Формат hex обеспечивает вывод числовых данных в шестнадцатеричном формате

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

Для переменных типа double в MATLAB разрешены арифметические операции сложения, вычитания, умножения и деления, для которых используются традиционные для любого языка программирования знаки: +, –, *, /, а также операция возведения в степень, обозначаемая знаком ^ (вместо ** в языке программирования FORTRAN).

Арифметические выражения

Основу большинства расчетов составляют вычисления значений арифметических выражений, в которых в качестве операндов могут выступать константы (постоянные), переменные, стандартные и нестандартные функции. Специфика MATLAB (также как и современных стандартов языка программирования FORTRAN) заключается в том, что в отличие от большинства алгоритмических языков здесь допускается использование операндов-массивов. Таким образом, в результате вычисления выражения может получиться некоторое множество значений – вектор, матрица или массив большей размерности.

Система вещественных чисел в математических вычислениях предполагается непрерывной и бесконечной, т.е. не имеющей ограничений на диапазон и точность представления чисел. Однако в компьютерах числа хранятся в регистрах и ячейках памяти с ограниченным количеством разрядов. В следствие этого система вещественных чисел, представимых в машине, является дискретной (прерывной) и конечной.

При написании вещественных чисел в программах вместо привычной запятой принято ставить точку. Для отображения вещественных чисел, которые могут быть как очень маленькими, так и очень большими, используется форма записи чисел с порядком основания системы счисления . Например, десятичное число 1.25 в этой форме можно представить так:
1.25 . 10 0 = 0.125 . 10 1 = 0.0125 . 10 2 = .
или так:
12.5 . 10 -1 = 125.0 . 10 -2 = 1250.0 . 10 -3 = . .

Читайте также:  Как разблокировать пульт от ресивера
Любое число N в системе счисления с основанием q можно записать в виде N = M . q p , где M — множитель, содержащий все цифры числа (мантисса) , а p — целое число, называемое порядком . Такой способ записи чисел называется представлением числа с плавающей точкой .

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

Мантисса должна быть правильной дробью, у которой первая цифра после точки (запятой в обычной записи) отлична от нуля: 0.1 2 нормализованным

Мантиссу и порядок q-ичного числа принято записывать в системе с основанием q, а само основание — в десятичной системе. Примеры нормализованного представления:

Десятичная система Двоичная система
753.15 = 0.75315 . 10 3 ; —101.01 = —0.10101 . 2 11 (порядок 11 2 = 3 10 )
— 0.000034 = — 0.34 . 10 -4 ; 0.000011 = 0.11 . 2 -100 (порядок —100 2 = —4 10 ).

Вещественные числа в компьютерах различных типов записываются по-разному, тем не менее, все компьютеры поддерживают несколько международных стандартных форматов, различающихся по точности, но имеющих одинаковую структуру следующего вида:

Здесь порядок n-разрядного нормализованного числа задается в так называемой смещенной форме: если для задания порядка выделено k разрядов, то к истинному значению порядка, представленного в дополнительном коде, прибавляют смещение, равное (2 k-1 — 1). Например, порядок, принимающий значения в диапазоне от —128 до +127, представляется смещенным порядком, значения которого меняются от 0 до 255.

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

Чем больше разрядов отводится под запись мантиссы, тем выше точность представления числа. Чем больше разрядов занимает порядок, тем шире диапазон от наименьшего отличного от нуля числа до наибольшего числа, представимого в машине при заданном формате.

Стандартные форматы представления вещественных чисел:

1) одинарный — 32-разрядное нормализованное число со знаком, 8-разрядным смещенным порядком и 24-разрядной мантиссой (старший бит мантиссы, всегда равный 1, не хранится в памяти, и размер поля, выделенного для хранения мантиссы, составляет только 23 разряда).

2) двойной — 64-разрядное нормализованное число со знаком, 11-разрядным смещенным порядком и 53-разрядной мантиссой (старший бит мантиссы не хранится, размер поля, выделенного для хранения мантиссы, составляет 52 разряда).

3) расширенный — 80-разрядное число со знаком, 15-разрядным смещенным порядком и 64-разрядной мантиссой. Позволяет хранить ненормализованные числа.

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

Читайте также:  Фото спутников в космосе

Викулин Максим Александрович

Лекция 4

Представление вещественных чисел в памяти вычислительной машины

Формы записи

Существует две формы записи вещественных чисел:

Естественная запись –125,625 Экспоненциальная запись –1,25625 × 10 2 ; –12562,5 × 10 -2

Нормальная экспоненциальная форма

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

Для десятичной системы: –0,125625 × 10 3

Для двоичной системы: 10110,112 = 1,0110112 × 2 4

где 1,011011 — нормализованная мантисса;

4 — истинный порядок.

Форматы представления

Формат представления вещественных чисел (4 байта с нормализованной мантиссой и смещеным порядком):

single — 4 байта (минимальная длина машинного слова с плавающей точкой).

Существуют также более вместимые форматы:

  • real — 6 байт;
  • double — 8 байт.

Представление вещественных чисел

знак СП (8 разрядов) нормализованная мантисса без первой 1 (23 разряда)

Смещенный порядок (СП) введен для того, чтобы хранить истинный порядок (ИП) в виде неотрицательного числа.

СП = смещение + ИП

Смещение введено для того, чтобы СП гарантированно был неотрицательный. Для single смещение равно 127.

Содержание ячейки принято записывать в шестнадцатиричной системе. Формат single содержит 32 бита, то есть 8 знаков в шестнадцатиричной системе.

Примеры

Проведем нормализацию: –1,1111011012 × 2 6

СП = 127 + 6 = 133 = 100001012

1 1 1 1 1 1 1 1 1 1 .

Примеры

Найти значение числа A = 43E3800016 (формат single).

1 1 1 1 1 1 1 1 1 .

СП = 8716 = 128 + 7 = 135 = 127 + ИП ⇒ ИП = 8.

1,110001112 × 2 8 = 1110001112 = 1C716 = 455

Примеры

Представить число A = 0,0625 в типе single.

СП = 127 + ИП = 127 — 4 = 123 = 7B16 = 011110112.

1 1 1 1 1 1 .

Сложение и вычитание

Для сложения или вычитания двух представлений чисел необходимо:

  1. Выровнять порядки;
  2. Произвести операцию сложения/вычитания;
  3. Нормализовать результат.

Умножение и деление

Для умножения или деления двух представлений чисел необходимо:

  1. Произвести операцию умножения/деления над мантиссами;
  2. Произвести операцию сложения/вычитания над порядками;
  3. Нормализовать результат.

Особенности представления в формате single

Минимальное значение: -1,11111111111111111111111 × 2 127

1 1 1 1 1 1 1 1 1 1 . 1

Максимальное значение: 1,11111111111111111111111 × 2 127

1 1 1 1 1 1 1 1 1 . 1

Машинный ноль

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

Например, возможно такая ситуация: a + b = a, где a, b > 0.

Для формата single машинным нулем является интервал
от –1 × 2 –127 до 1 × 2 –127 .

Неравномерность распределения

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

Ссылка на основную публикацию
Филипс диамонд вижн h7
Заказав на экзисте лампы для ближнего света Philips Blue Vision Ultra (пост удалил), понял, что сильно поторопился, поскольку ничего не...
Усилитель сигнала для тв антенны отзывы
Характеристика в рейтинге 1 Alcad AL-200 Высокое качество во всех аспектах эксплуатации. Самый популярный усилитель в России 2 Eurosky SWA-105...
Усилитель сотового сигнала отзывы
Нашел вот еще информацию что Mobi-900 стал занял 1 место в рейтинге репитеров по версии журнала Provider-Review: http://provider-review.ru/reyting-usiliteley-sotovoy-svyazi.html А вот...
Фигуры для оформления текста
Методические рекомендации В Word 2007 можно добавлять два типа графики – Рисунки и Фигуры. Рисунок – изображение, созданное в другом...
Adblock detector