русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Представление информации в форме с фиксированной и плавающей точкой


Дата добавления: 2014-09-02; просмотров: 1613; Нарушение авторских прав


При рассмотрении систем счисления мы оперировали в основном целыми числами, т.е. числами у которых точка, отделяющая целую часть числа от дробной, располагается справа от крайнего правого разряда. Но в инженерных и научных расчетах не обойтись без учета дробных чисел. Тогда точку можно располагать левее от крайних правых разрядов, добиваясь при этом необходимой точности вычислений. Так, в 16-pазpядном двоичном числе расположение точки справа от левого крайнего разряда даст максимальную точность при вычислении положительных значений синуса:

0.0000000000000002 = 010

0.1000000000000002 = 0.510

1.0000000000000002 = 1.010

Разряд двоичного числа представляется в ЭВМ некоторым техническим устройством, например триггером, двум различным состояниям которого приписывают значения 0 или 1. Набор соответствующего количества таких устройств служит для представления многоразрядного двоичного числа.

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

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

Знак   2-1 2-2         2-31

0 1 2 3 4 5 6 ….. 31 -представление двоичных чисел с фиксированной точкой в виде 32-разрядных слов для случая закрепления точки перед старшим разрядом.

 

Знак   230         20

0 1 2 3 4 5 6 ….. 31 -представление двоичных чисел с фиксированной точкой в виде 32 разрядных слов для случая закрепления точки после младшего разряда.



Для кодирования знака числа используется «знаковый» разряд: 0 - это + (плюс), 1 - это (минус). Наибольшее положительное число, представимое в первой разрядной сетке, равно 0,1..1 = 1-2-31 , а наименьшее число 0,00…01 = 2-31 Таким образом, в разрядной сетке могут быть представлены числа в диапазоне от –(1-2-31) до -2-31 и от 2-31 до (1-2-31). Диапазон чисел, для второго случая:

1£ ½х½£ 231-1.

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

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

Недостаток формата с фиксированной точкой (сравнительно небольшой диапазон представляемых чисел) устраняется представлением чисел в формате с плавающей точкой (floating point format), который является основным в компьютерах. Одако наряду с этой формой представления используется также и представление с фиксированной точкой для целых двоичных чисел и операций над ними, в частности операции над кодами адресов.

В формате с плавающей точкой разряды числа разбиваются на два поля, имеющие названия мантисса и порядок. Если обозначить мантиссу буквой M, а порядок - P, то величина числа X =_{M}{P}. Эта запись является двоичным эквивалентом известной формы записи десятичных чисел X=M 10, например, 200=210+2, 36000000000=3610+9. структура 16-pазpядного числа в представлении с плавающей точкой и примеры даны в таблице.

Знак порядка Модуль порядка Знак мантиссы Модуль мантиссы Результат
14…10 8…0  
020
-120
-1402-4
511231

 

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

Интересной особенностью формата с плавающей точкой является возможность представления одного числа различными комбинациями значений мантиссы и порядка. Так, например, нуль в этом формате может быть записан 64 способами (мантисса равна 0, порядок принимает любое значение), другие числа могут иметь до 9 представлений, например:

32=12+5=22+4=42+3=82+4=162+1=322+0

2560=52+9=102+8=202+7=402+6=802+5=…=12802+1.

Несмотря на это, представление чисел в формате с плавающей точкой оказалось достаточно удобным для обработки на ЭВМ больших и дробных чисел, хотя при этом пришлось пойти на некоторые дополнения. Так, например, чтобы увеличить точность числа, для его представления отводят два, а иногда и четыре 16-pазpядных поля. Вообще же в вычислительных машинах используются отличающиеся друг от друга форматы с плавающей точкой, но основаны они на едином принципе представления: порядок и мантисса. Для выполнения арифметических операций над числами в формате с плавающей точкой используются точные правила, зависящие от конкретной реализации ЭВМ, но содержащие общий подход. Так, сложение и вычитание чисел с плавающей точкой сводится к выравниванию позиций точки с тем, чтобы оба числа имели одинаковый порядок, а затем производится сложение или вычитание мантисс. Для умножения и деления выравнивания позиций точек не требуется; производится лишь сложение (при умножении) или вычитание (при делении) порядков и умножение или деление мантисс.

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

Представление числа с плавающей точкой в общем виде имеет вид:

X= spq ; ½q½ < 1

где q мантисса числа Х,

p – порядок,

s – основание характеристики.

Обычно число s совпадает с основанием мантиссы q. Мантисса q – правильная дробь. Порядок p, который может быть положительным или отрицательным целым числом, определяет положение запятой в числе Х. Для двоичных чисел

х = 2pq; ½q½ < 1.

Рассмотрим пример в котором слова имеют длины 32 двоичных разряда. Пусть число Х =2pq, изображается в машине двоичным словом а0в0в1 … в6а1а2…. a24 которому соответствует следующий формат данных:

a0 b0 b1 b6 a1 a2         a24

Разряды в0..в6 используются для представления порядка при этом разряд в0 изображает знак порядка, а разряды в1.. в6 – модуль порядка, остальные разряды а0 .. а24 отводятся под изображение мантиссы, причем а0 – знак мантиссы а1.. а24 – модуль мантиссы. Двоичное число х= 2pq, называется нормализованным, если мантисса Q удовлетворяет следующему условию 1 > ½q½ ³ ½, т.е. двоичное число нормализовано если в старшем разряде мантиссы стоит 1. Под порядок отведено со знаком 7 разрядов то порядок может быть от –63 до +63 соответственно. Наибольшее и наименьшее нормализованное положительные числа в этой разрядной сетке соответственно равны:

263*0,111 … 1 = 263(1-2-24) и

2-63*0,1000..0=2-64.

Следовательно с учетом знака q в этой разрядной сетке можно представить числа, лежащие в диапазоне от –263(1-224) до –2-64 и от +2-64 до +263(1-2-24), что значительно превышает диапазон чисел с фиксированной точкой, представимых в том же 32х-разрядном слове. При фиксированном количестве разрядов мантиссы любая величина, представляется в машине с наибольшей возможной точностью нормализованным числом. Если в процессе вычислений получается ненормализованное число, то машина с плавающей запятой автоматически нормализует его. Пусть r старших разрядов мантиссы равно 0. Тогда, нормализация заключатся в сдвиге мантиссы на r разрядов влево и уменьшении порядка на r единиц. При этом в младшие r разрядов мантиссы записывается 0. В последних моделях ЭВМ получило распространение представление чисел с плавающей запятой в системах счисления с основанием, равным целой степени числа 2 (S=2w), х = spq(1>½q½³1/s). При этом порядок представляется двоичным целым числом, а мантисса q – числом, в котором группы по w двоичных разрядов изображают цифры мантиссы с основанием системы счисления s=2w. Использование для чисел с плавающей запятой недвоичного основания несколько уменьшает точность вычислений (при заданном количестве разрядом мантиссы), но позволяет увеличить диапазон представимых в машине чисел и ускорить выполнение некоторых операций, в частности нормализации, за счет того, что сдвиг может производиться на несколько разрядов сразу. В ЕС ЭВМ числа с плавающей запятой представляются в шестнадцатеричной системе счисления: х=16pq (1>q³1/16) .

a0 b0 b1 b6 r1 r2         r6

Модуль порядка p изображается целым шестиразрядным двоичным числом,. а мантисса q рассматривается как число, составленное из шестнадцатеричных цифр в виде:

q=å Гj 16-jj = 0,1,2 …, F)

j=1

В случае с шестнадцатеричными числами с плавающей запятой число Х считается нормализованным, если старшая шестнадцатеричная цифра Г1 отлична от 0. В нормализованном числе три старшие двоичные цифры могут равняться 0. Диапазон представления нормализованных чисел: -1663(1-16-6) до –16-64 и от +16-64 до 1663(1-16-6). Для упрощения операций над порядками их сводят к действиям над целыми положительными числами, применяя представление чисел с плавающей запятой со смещенным порядком (ЕС ЭВМ). В случае чисел со смещенным порядком при записи числа в память к его порядку p прибавляется целое число – смещение N=2k, где k – число двоичных разрядов, используемых для модуля порядка. Смещенный порядок pсм=p + N всегда положителен. Для его представления нужно такое же число разрядов как для p со знаком.

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

3.6. Прямая, обратная и дополнительная форма представления двоичных чисел в ЭВМ

В ЭВМ с целью упрощения арифметических операций применяют специальные коды для представления чисел. Например, упрощается определение знака результата операции, вычитание есть сложение кодов, облегчено определение переполнения разрядной сетки. Положительные числа представляются в прямом коде. Прямой код Gпр двоичной дроби с (n-1)–разрядной мантиссой G=±0,к1,к2 …. к n-1 определяется как Gпр = ½G½когда G³0 и ½1+G½, когда G £ 0 Прямой код целого n – разрядного двоичного числа G = ±кn-2,kn-3, …k1,k0 имеет вид Gпр=½G½при G³0 и 2n-1+½G½ при G£0. Прямой код числа со знаком можно рассматривать как двоичное число без знака , которое определяется этими соотношениями. Операция вычитания (алгебраического сложения) сводится к операции простого арифметического сложения при помощи обратного и дополнительного кодов, используемых для представления отрицательных чисел в машине. Что бы представить двоичное отрицательное число в обратном коде нужно в знаковый разряд поставить 1, а во всех других разрядах заменить 1 нулями, а 0 – единицами. При этом отрицательная двоичная дробь G-= -0,k1,k2, …, kn-1в обратном коде примет вид

G-обр= 1,r1,r2, …,rn-1 ,

а отрицательное двоичное число G= - kn-2,kn-3, …,k1,k0 соответственно

G-обр= 1,rn-2,rn-3, …,r1,r0 где ri=0 , если ki=1 и наоборот.

При представлении отрицательного двоичного числа в дополнительном коде ставят 1 в разряд знака, а цифровую часть числа заменяют дополнением модуля числа до 2 или соответственно 2n, для дробей и целых чисел. Дополнительный код отрицательного числа G- определяется выражением G-доп=2- ½G-½, если G- - двоичная дробь, и G-доп = 2n - ½G-½ если G- - целое двоичное число. Таким образом, дополнительный код числа может быть получен из обратного путем прибавления 1 к младшему разряду обратного кода.



<== предыдущая лекция | следующая лекция ==>
Арифметические действия и коды чисел | Законы (теоремы и тождества) алгебры логики


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.094 сек.