АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Правила получения кодов

Читайте также:
  1. B3.4. Правила оформления графиков
  2. I. Правила терминов
  3. II. ПРАВИЛА ОФОРМЛЕНИЯ СОЦИАЛЬНОГО ПРОЕКТА
  4. Алгоритм получения дополнительного k-разрядного кода отрицательного числа
  5. Биомедицинская этика об основных правилах взаимоотношений и обязанностях врача и пациента в процессе лечебной деятельности
  6. Брожение как основной способ получения энергии у бактерий.
  7. Будова, призначення та правила використання порошкових вогнегасників.
  8. В соответствии с ч.5 ст. 26 ФЗ № 210 граждане РФ имеют право в письменном виде отказаться от получения УЭК.
  9. В соответствии с ч.5 ст. 26 ФЗ № 210 граждане РФ имеют право в письменном виде отказаться от получения УЭК.
  10. Важнейшие классы неорганических соединений. Бинарные и многоэлементные соединения. Оксиды: определение, классификация, номенклатура, способы получения, химические свойства
  11. Виды нотариальных действий и правила их совершения
  12. Виола лишь снова переглянулась с Нейтаном и отвернулась в сторону женщины, которая рассказывала о правилах на балу.

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

Пример: без знака 5(10) = 0000101(2); с учетом знака - 0.0000101 ПК. Естественно, что никакая разделительная точка между знаком и значащей частью в ЭВМ не ставится. Здесь она поставлена для большей наглядности.

Обратный код. Используется для представления в ЭВМ отрицательных чисел. Код получается инвертированием всех цифр абсолютной величины числа: нули заменяются единицами, единицы – нулями. Например, абсолютное значение числа -5 есть 0.0000101. Обратный код – 1.1111010.

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

 

Например: ПК (-5): 1.0000101

ОК (-5): 1.1111010

ДК (-5): 1.1111011

 

Операция сложения (вычитания) осуществляется в ОК и ДК.

Особенности операций с фиксированной точкой:

1. Операции выполняются поразрядно по правилам двоичной арифметики;

2. Знаковый разряд участвует со всеми остальными значащими разрядами по единым правилам;

3. Операции вычитания заменяются операциями сложения в дополнительных (обратных) кодах. Такая замена позволяет ускорить вычисления (не анализировать отдельно знак, модуль, выбирать тип операции и т.д.). Знаки операндов изначально не важны при вычитании. Они уже учтены в процессе представления чисел в памяти ЭВМ (в дополнительном либо обратном кодах);

4. Разрядность чисел должна быть одинакова. Однако существует опасность переполнения разрядной сетки. Эта ситуация контролируется по формальным признакам и представляет собой самостоятельную проблему;

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

Для более простого запоминания правил выполнения арифметических операций в обратных и дополнительных кодах удобно воспользоваться следующими мнемоническими правилами. При этом необходимо четко разделить операции представления чисел в ЭВМ, выполнения операций сложения и вычитания, операцию правильного чтения данных из памяти. Этапы представлены в табл.5. В качестве примера в ней показаны операции сложения С+ =А+В, вычитания С- = А-В. Конкретные цифровые значения А=+3, В=-5. Комментарии сделаны только для дополнительного кода, но для обратного они аналогичны.

 

Таблица 1.4. Алгоритмы представления и обработки данных в ЭВМ
  ПК (число +) ОК (число -) ДК (число -)
Представление Само число   А= +310 = 0.0011 +510 = 0.0101   А= 0.0011 ПК Инверсия всего ПК (и знака тоже) В= -5 0.0101 ПК     В= 1.1010 ОК Инверсия всего ПК +1   В= -5 0.0101 ПК ОК + 1 В= 1.1011 ДК

 

На этом этапе показано, что положительное число представляется в ПК самим числом со знаком 0 (об этом говорит мнемоническое правило в верхней части столбца положительных чисел). Для ДК правило предполагает прямое инвертирование всего ПК (т.е. числа вместе с нулем в знаковом разряде) и арифметическое сложение с 1. В этом есть некоторая неточность, т.к. отрицательное число все же в ПК должно иметь 1 в знаковом разряде. Но эта неточность и позволяет получить очень простое правило, хотя потребует учесть ее при выводе (чтении) числа.

 

Сложение           А+В= +3 + (-5) = -2   А= 0.0011 В= + 1.1010 ____________ С+ = 1.1101     А+В= +3 + (-5) = -2   А = 0.0011 В = + 1.1011 _______ С+= 1.1110  

 

На этапе сложения в ДК необходимо выполнить сложение всех разрядов, включая знаковый, по единым правилам. Если появится перенос из знакового разряда – его не учитывать. Об этом говорит стрелка в мнемоническом правиле в верхней части поля.

 

Вычитание     А-В =3 – (-5) = 8   В: -5= 1.1010 [В]ОК= 0.0101 А=3= 0.0011 [В]ОК= + 0.0101 ____________ С- = 0.1000 А-В = +3 – (-5) = 8   [В]ДК: В= 1.1011 [В]ОК= 0.0100 + 1 [В]ДК= 0.0101   А= 0.0011 [В]ДК= + 0.0101 _______ С-= 0.1000    

 

Вычитание числа, хранящегося в ячейке В, предполагает, что с содержимым ячейки В будет выполнена операция получения ДК по правилам представления чисел (все содержимое, включая знак ячейки В, будет проинвертировано и добавлена арифметически 1) и выполнено суммирование с содержимым ячейки А.

 

Чтение (выдача) 0. … ® ПК С- = 0.1000 ® ПК® +8   1. … ® ОК   С+ = 1.1101 ® ОК [С+]ОК= 0.0010 = -2     1. … ® ДК   С+= 1.1110® ДК [С+]ОК= 0.0001 + 1 [С+]ДК= 0.0010= -2

 

Чтение числа начинается с анализа знака. Если в знаковом разряде стоит нуль, то число записано в ПК и его следует читать напрямую. Если число имеет в знаковом разряде 1, значит число хранится в ДК и с числом необходимо выполнить операцию получения ДК (все, включая знак проинвертровать и арифметически прибавить 1). В результате преобразований в знаковом разряде получится 0, и здесь необходимо учесть допущения, используемые на этапе представления чисел в ДК. Само преобразование в ДК вызвано тем, что число было представлено с 1 в знаковом разряде и, следовательно, отрицательно. Поэтому знак минуса в числе потерять нельзя.

 

 


1 | 2 | 3 | 4 | 5 |

Поиск по сайту:



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