Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Операции над двоично-десятичными числами в упакованном формате без учета знака




Пример

Число с плавающей запятой формата двойное слово

Вещественные числа

Смещенный код (с избытком)

Выбирается длина разрядной сетки — n и записываются последовательно все возможные кодовые комбинации в обычной двоичной системе счисления. Затем кодовая комбинация с единицей в старшем разряде, имеющая значение 2n-1, выбирается для представления числа 0. Все последующие комбинации с единицей в старшем разряде будут представлять числа 1, 2, 3,... соответственно, а предыдущие комбинации в обратном порядке — числа -1,-2, -3,....

Номер кодовой комбинации Код с избытком 4 Десятичн. значение
     
     
     
     
    -1
    -2
    -3
    -4

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

Результаты вычислений будут заведомо содержать погрешности

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

n-1 n-2   m m-1          
                       
Знак мантиссы Смещенный порядок Мантисса

 

Вещественные числа в компьютерах представляются в нормализованном виде, как правило, в трех форматах – одинарном (32), двойном (64) и расширенном (80 разрядов).

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

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

Нормализованное число одинарной точности, представленное в формате с плавающей запятой, записывается в память следующим образом: знак числа (знак мантиссы) - в бите 15 первого слова (0 - для положительных и 1 - для отрицательных чисел); порядок размещается в битах 7 -14 первого слова, а мантисса занимает остальные 23 бита в двух словах.

Упрощенное представление: 31 разряд- знак мантиссы, с 23-30 разряда смещенный порядок и с 22 по 0 разряды – мантисса.

Нормализуем число для выделения мантиссы и порядка

-11000001 B= – 1,1000001(2)* 2(10)^7(10).

Здесь мантисса (M): –1,1000001; порядок P:–111(2); Смещенный порядок (Смp) = 7 + 127(10) = =134(10) (Смещенный порядок = P+ 127; 127 – смещение для чисел с одинарной точностью)

    Знак числа Смещенный порядок Смp =7(10)+ 127(10) =134(10) =10000110(2)   Мантисса (M)– 0,11000001
N разряда                                      
Число                                        
  С   С          
                                             

С8С10000 H – шестнадцатеричная форма внутреннего представления числа в формате с плавающей точкой (запятой) с одинарной точностью.

Арифметические операции с вещественными числами.

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

1. Сложение. Пусть имеется два числа X1=M1*10k(1) и X2=M2*10k(2).

Для их сложения:

а. Δk=| k1-k2 |

b. если k1 > k2, то M=M1 + M2 10 -Δk k=k1,

с. если 10-1 < =М< 1, то вывод результата в виде M *10k

иначе предварительная нормализация.

Пример:

Х1=0.87654 * 101, Х2=0.94567*102. Пусть под запись мантиссы отводится 5 разрядов.

а. Δk= 1, k1<k2,следовательно, k=k2=2 (уравняли порядки)

b. мантиссу числа X1 сдвигаем на один разряд влево (пропадет 4)

с. новая мантисса равна 0,94567+0,08765=1,03332

а. мантисса вышла за допустимый интервал (она >1). Нормализуя, получим мантиссу 0,10333 (теряем 2) и порядок увеличиваем на 1. В итоге получаем Х=0,10333*103, а точный результат равен 103,3324.

2. Вычитание сводится к сложению с дополнительным кодом.

3. Умножение производится по правилу - мантиссы перемножаются, а порядки складываются. Если нужно, то полученное число нормализуется.

4. Деление производится по правилу - мантиссы делятся (делимое на делитель), а порядки вычитаются (порядок делителя из порядка делимого). Если нужно, то полученное число нормализуется.

Для целых со знаком определены операции

1. Сложение. Алгоритм аналогичен алгоритму сложения двоичных чисел, но все коды, включая результат операции, будут одинаковой длинны. То есть, если в результате + появился дополнительный бит слева, то он будет отсечен. Именно поэтому 0111+1011=(1) 0010.

2. Вычитание. Оно как таковое здесь не присутствует, т.к. сводиться к сложению с дополнительным кодом: 710-510=710+(-510)=01112+10112=0010=210

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

Проблема переполнения:

Она вытекает из ограничения на размер чисел, представимым данным количеством битов. [Например, в 3-битовом представлении в двоичном дополнительном коде нет записи для числа 4 => сложим 2+2 и не получим правильного ответа]. Такая ошибка называется переполнением.

Проверить есть ли она, или нет, можно посмотрев на знаковый разряд результата. Ошибка есть, если

· складываются два положительных числа, а результат «-».

· складываются два отрицательных числа, а результат «+».

Это нужно знать, и при программировании об этом помнить. Иначе может быть серьезная ошибка.

История: 19.09.1989 компьютерная система в госпитале США заметила ошибку после долгих лет надежной работы. Из-за того, что это был 32768-ым днем после 1.01.1900 (раньше был 16-битовый код, то есть максимум 32768)

3. Операция умножения. При ней число из дополнительного кода переводиться в прямой, перемножаются всегда положительные числа, а знаковый бит будет содержать 0, если знаки чисел одинаковы и 1 в противном случае.Умножение производится по правилу – мантиссы перемножаются, а порядки складываются. Если нужно, то полученное число нормализуется.

4. Деление. Над множеством целых чисел со знаком эта операция не определена. Но допустима операция целочисленного деления. Перевод в дополнительный код происходит автоматически при вводе чисел, в таком виде они хранятся в ОЗУ и участвуют в арифметических операциях.Деление производится по правилу – мантиссы делятся (делимое на делитель), а порядки вычитаются (порядок делителя из порядка делимого). Если нужно, то полученное число нормализуется

Двоично-десятичные кодированныечисла

Двоично-кодированные десятичные числа могут быть представлены в ПК полями переменной длины в так называемых упакованном и распакованном форматах.

В упакованном формате для каждой десятичной цифры отводится по 4 дво­ичных разряда (полбайта), при этом знак числа кодируется в крайнем правом полубайте числа

(1100 — знак "+" и 1101 — знак "-").

Структура поля упакованного формата:

Цф Цф ... Цф Знак

Здесь и далее: Цф — цифра. Знак — знак числа

Упакованный формат используется обычно в ПК при выполнении операций сложения и вычитания двоично-десятичных чисел.

Символ 0 код ASCII 48 (10) – 0011 0000 (2)

1 49 0011 0001 …

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

Структура поля распакованного формата:

Зона Цф Зона Цф ... Зона Цф Знак Цф

Распакованный формат используется в ПК при вводе-выводе информации в ПК, Упакованный – для сокращения кода при передаче цифровой информации по компьютерной сети, а также при выполнении операций умножения и деления двоично-десятичных чисел.

Пример 23. Число -193(10) = -000110010011 (2) в ПК будет представлено:

       
      -

 

в упакованном формате —

 

           
    -  

в распакованном формате —

 

 

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

Рассмотрим три примера:

1) 2)

 

0001 1000 + 0001 0011 à 0010 1011 + 0000 0110   0001 1001 + 0001 1001 à 0011 0010 + 0000 0110
0010 1011   0011 0001   0011 0010   0011 1000

3)

488 (10) 0100 1000 1000

+ +

39 0000 0011 1001




Поделиться с друзьями:


Дата добавления: 2014-10-17; Просмотров: 955; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




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