Главная Случайная страница


Полезное:

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

Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






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





 

Математическая запись числа две целых четыре сотых выглядит так 2,04 но возможна и такая запись 0,204×10, или такая 20,4×10-1, или такая 0,0204×102... Этот ряд можно продолжать сколь угодно долго. На что вы обратили внимание? - запятая перемещается («плавает») влево или вправо, и, чтобы не изменить значение числа, мы умножаем его на 10 в отрицательной или положительной степени.

Для представления вещественных чисел в памяти ЭВМ используется формат с плавающей точкой. При этом необходимо помнить, что система вещественных чисел представимых в ЭВМ является дискретной и конечной.

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

m — мы будем называть мантиссой числа (модуль целой части мантиссы изменяется в диапазоне от 1 до S-1 (включая эти числа), где S- основание системы счисления),

p — целочисленный порядок,

S ¾ основание системы счисления.

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

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

Вещественное число в ПЭВМ представлено в экспоненциальной форме.

Следовательно, при представлении чисел с плавающей точкой необходимо записать в разрядной сетке ЭВМ со своими знаками мантиссу и порядок . Знак числа при этом совпадает со знаком мантиссы. Запишем число 314.6789 в экспоненциальной форме:314.6789= 3.1467890000E+2. Число разрядов, выделенных для изображения порядков, определяет диапазон представимых в ЭВМ чисел с плавающей точкой.

Кроме того, этот диапазон зависит также от основания S принятой системы счисления.

Значение произвольного числа вещественного типа представляется в ПЭВМ лишь с некоторой конечной точностью, которая зависит от внутреннего формата вещественного числа, точность представления чисел повышается с увеличением числа разрядов мантиссы.



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

Десятичная точка подразумевается перед левым (старшим) разрядом мантиссы, но при действиях с числом ее положение смещается влево или вправо в зависимости от двоичного порядка.

Рассмотрим представление чисел в разрядной сетке длиной 4 байта ( так называемая одинарная точность). Изобразим разрядную сетку, состоящую из 32 разрядов и посмотрим, как эти разряды распределены.

0 1 2 3 4 5 6 7 8 … 31

               

знак мантиссы порядок мантисса

 

Пусть необходимо представить число –13,75 в разрядной сетке с одинарной точностью. Для этого необходимо выполнить следующие действия:

1. перевести число в двоичную систему счисления;

2. представить его в экспоненциальной форме;

3. получить исходный порядок и мантиссу;

4. получить смещенный порядок.

 

1) 13.7510=1101.112

75/100=3/4=3/22=0.112

2) Представим двоичное число 1101.11 в экспоненциальной форме 1101.11=1.10111E+3.

3) Исходный порядок равен 3.

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

4) Вычислим смещенный порядок (в формате с одинарной точностью к исходному порядку добавляется число 127)

Pсм=3+127=130=128+2=27+2=100000002+102=1000 00102

Рсм=100000102

Мантисса=.101112

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

0 10000010 10111000000000000000000

знак порядок мантисса

представим полученное число в шестнадцатеричной системе счисления

0100 0001 0101 1100 0000 0000 0000 0000

 

Итак, мы получили шестнадцатеричное число 415С0000.

Решим обратную задачу.

Значение переменной А Представлено в формате с плавающей точкой в шестнадцатеричной системе счисления А=ВЕ200000. Тип переменной А-single для языка Паскаль. Найти десятичное значение переменной А.

Для решения обратной задачи необходимо выполнить следующие действия:

1) Перевести шестнадцатеричное число в двоичную систему счисления.

2) Выделить знак мантиссы(знак мантиссы совпадает со знаком числа).

3) Выделить смещенный порядок.

4) Вычислить исходный порядок.

5) Записать число, не забыв указать его целую часть, в экспоненциальной форме.



6) Перевести число из экспоненциальной формы в обычную форму записи.

7) Перевести число из двоичной системы счисления в десятичную.

Выполним перечисленные действия.

ВЕ200000=1011 1110 0010 0…0000

1 01111100 0100…0

знак порядок мантисса

 

Число отрицательное так как левый разряд равен 1.

Вычислим исходный порядок:

Р=Р-127=1111100-127=124-127=-3.

Запишем искомое число в экспоненциальной форме в двоичной системе счисления:

А=-1.01Е-3. Не забывайте указывать целую часть.

Представим искомое число в обычной форме записи в двоичной системе счисления:

А=-1.01Е-3=-0.001012=-0.2816=-0.15625.

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

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

После выравнивания порядков производится алгебраическое сложение мантисс.

 

Выполнить самостоятельно:

1) Найти представление десятичного числа А в шестнадцатеричной системе счисления в формате с плавающей точкой. Тип числа single.

А=-357.2265626; А=-0.203125; А=998.46875;

А=–657.4375; А=998.8125; А=-905,34375; А=897.5625

А=637.65625; А=56.53125; А=-4.78125.

2) Значение переменной А представлено в формате с плавающей точкой в шестнадцатеричной системе счисления. Тип переменной А-single для языка Паскаль. Найти десятичное значение переменной А.

А=C455C200; A=43D09400; A=443F9000; A=C2FF8000;

А=44071С00; A=435D2000; А=C401F000; А= С403ЕС00;

A=C3D87400; A=C3D40000; A=C411FA00; A=3F700000.

 

 

 








Date: 2015-07-17; view: 3129; Нарушение авторских прав

mydocx.ru - 2015-2018 year. (0.011 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию