рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Способы представления в ЭВМ отрицательных чисел

Способы представления в ЭВМ отрицательных чисел - раздел Информатика, ОСНОВЫ ИНФОРМАТИКИ В Эвм Нашли Широкое Распространение Три Способа Представления (Кодирования) Ч...

В ЭВМ нашли широкое распространение три способа представления (кодирования) чисел в прямом, обратном и дополнительном кодах.

Как уже указывалось ранее, для запоминания одной двоичной цифры в ЭВМ используется элемент с двумя устойчивыми состояниями 0 и 1. Для хранения k-разрядного двоичного числа берут k таких элементов, совокупность которых называется регистромÌ.

Пусть в ЭВМ для записи числа А отводится n разрядов под целую часть, m под дробную часть и один разряд под знак числа:

an an-1 an-2 a1 a0 a-1 a-m

 

 

 

4.1. Прямой код

 

Прямой код соответствует обычной записи числа со своим знаком. Положительное число имеет в знаковом разряде символов 0, отрицательное – 1. Прямой код обозначают [A]пр, а знаковый разряд отделяют от цифровых разрядов точкой.

Числа в прямом коде представляются в форме:

при А ³ 0 [A]пp = 0.an-1an-2 … a1a0,a-1 … a-m;

( 3.2 )

при А £ 0 [A]пр = 1.an-1an-2 … a1a0,a-1 … a-m ;

 

Пример 3.16.

А =+11011,1001; [A]пр=0.11011,1001 (n=5, m=4).

 

Пример 3.17.

В =-1010,101, [В]пр=1.1010,101 (n=4, m=3).

 

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

+ 0 : [0]пр = 0.00…0, - 0 : [0]пр = 1.00…0.

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

Общая идея представления отрицательных чисел в обратном и дополнительном кодах заключается во введении специального разряда с отрицательным весовым коэффициентом. Число А записывают в форме:

 
 


( 3.3 )

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

 

 

4.2. Обратный код

 

Для образования обратного кода коэффициент С в выражении (3.3) выбирается равным максимальному числу, которое может быть записано в регистре с n целыми и m дробными разрядами:

С = 2n-2-m.

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

[A]обр = bn.bn-1 … b1b0,b-1 … b-m,

при этом число А определяется как:

 
 


( 3.4 )

 

Пример 3.18. Найти значения двоичных чисел, записанных в обратном коде :

[A1]обр = 0.110,11, [A2]обр = 1.011,01 (n=3, m=2).

Решение. А1=0. (-2+3+2-2)+110,11=+110,11.

А2 = 1. (-2+3+2-2)+011,01=-1000+0,01+011,01=-100,10.

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

Чтобы найти правило перехода от прямого кода отрицательного числа к обратному, приравняем правые части соотношений (3.2) и (3.4). Учитывая, что в соотношении (3.4 ) для отрицательных чисел bn=1, получим:

 

 
 


Так как то

 

 

Следовательно, bi=1-ai, т.е. если ai=0, то bi=1 и если ai=1, то bi=0.

 

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

 

Пример 3.19. Получить обратный код для числа А = -10101,1011.

Решение. [A]пр = 1.10101,1011, [A]обр = 1.01010,0100.

 

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

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

+ 0 : [0]обр = 0.00 … 0, - 0 : [0]обр = 1.11 … 1.

 

4.3. Сложение чисел в обратном коде

 

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

Рассмотрим возможные случаи при сложении чисел В и С : В+С=D.

1. B > C , C > 0. Так как положительные числа в прямом и обратном кодах записываются одинаково, то и складываются они по известному правилу.

2. Рассмотрим сложение чисел с разными знаками: В > 0, C < 0.

 
 


[B]обр = 0.bn-1bn-2 … b1b0,b-1 … b-m,

,

[C]обр = 1.cn-1cn-2 … c1c0,c-1 … c-m, .

Тогда

[B]обр + [C]обр = [D]обр = dn.dn-1 … d1d0,d-1 … d-m ,

D . (3.5)

 

Рассмотрим два случая в выражении (3.5):

 
 


1.

 

Тогда нет переноса в n–й разряд и [D]обр имеет вид:

[D]обр = 1.dn-1 … d1d0,d-1 … d-m,

т.е. результат получаем, пользуясь обычными правилами сложения.

 

Пример 2.20. Сложить два числа в обратных кодах : В = + 3(10), С = - 5(10), n=3, m=0.

Решение. В = + 011(2), С = - 101(2).

[B]обр =0.011

[C]обр =1.010

[D]обр =1.101 .

 

[D]пр = 1.010, D = - 010(2) = - 2(10) , т.е. + 3(10) + (-5)(10) = - 2(10).

 

2.

 

 

В данном случае имеется единица переноса в n-ный разряд и тогда можно записать:

 

 

Подставив это выражение, получим:

 
 


 

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

Заметим, что в этом случае при сложении чисел по обычным правилам появится 1 переноса из разряда с отрицательным весом, которая также участвует в операции сложения. Это и является формальным признаком того, что необходимо добавить 1 в младший разряд. Такая операция называется циклическим переносом.

Пример 3.21. Сложить два числа в обратных кодах : В = +5 (10), С = -3 (10) , n = 3, m = 0.

Решение. В = +101(2), С = - 011(2).

[B]обр = 0.101

[C]обр = 1.100

0.001

+1

[D]обр = 0.010

[D]пр = 0.010, D = + 010(2) = + 2(10), т.е. +5(10) + (-3)10 = +2(10).

 

3. В < 0, C < 0. В этом случае аналогично можно показать , что и при сложении двух отрицательных чисел необходимо выполнять циклический перенос.

 

Пример 3.22. Сложить два числа в обратных кодах: В = - 2(10), С = - 5(10), n=3, m=0.

Решение. В = - 010(2), С = -101(2).

[B]обр = 1.101

[C]обр = 1.010

0.111

+1

[D]обр = 1. 000

[D]пр = 1.111, D = - 111(2) = - 7(10), т.е. (-2)10 + (-5)10 = -710.

 

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

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

 

4.4. Дополнительный код

 

Идея образования дополнительного кода возникла в связи со стремлением избавиться от операции циклического переноса, которая приводит к увеличению времени выполнения операции сложения. Оказывается , что для устранения циклического переноса достаточно уменьшить величину отрицательного веса С на единицу младшего разряда: С = 2n. Тогда двоичное число в дополнительном коде имеет вид:

 

[A]доп = dn . dn-1 … d1 d0, d-1…d-m,

 

Правило. Положительные числа в прямом и дополнительном кодах имеют одинаковую форму записи. Для записи отрицательного числа в дополнительном коде достаточно образовать обратный код этого числа и к нему прибавить единицу младшего разряда 2-m.

Пример 3.23. Получить дополнительный код для чисел: A=+1001,101(2), B=-1000,010(2) (n=4, m=3).

Решение: [A]доп.=0.1001,101. [B]обр.=1.0111,101

1

[B]доп.=1.0111,110

Для образования прямого кода отрицательного числа из дополнительного кода следует вычесть единицу младшего разряда (получим обратный код) и заменить 1 на 0, а 0 на 1 (получим прямой код).

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

Пример 3.24. Получить прямой код из дополнительного: [B]доп.=1.0111,110.

Решение. ([B]доп.)обр.=1.1000,001

1

[B]пр.=1.1000,010

 

Как представляется нуль в дополнительном коде:

+0: [0]доп.= 0.000…00 ,

-0: [0]доп.=1.111 … 1

+ 1

[0]доп.=0.000 … 0 ,

т.е. нуль в дополнительном коде имеет единственное представление.

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

Пример 3.25. Сложить в дополнительных кодах числа:

А1 =+7(10) = +111(2) и В1 =-3(10) = -011(2),

А2 =-7(10) = -111(2) и В2 =+3(10) = +011(2) .

Решение.

 

[A1]доп = 0.111 [A2] доп = 1.001

[B1]доп = 1.101 [B2] доп = 0.011

[C1]доп = 0.100, [C2] доп = 1.100

[C2]пр = 1.100

 

С1 = + 100(2) = + 4(10) , С2 = -100(2) = - 4(10).

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

- перевод чисел из прямого кода в обратный осуществляется проще, чем в дополнительный;

- в дополнительном коде проще выполняется сложение, т.к. отсутствует циклический перенос.

Поэтому обратный и дополнительный коды примерно равноценны при их реализации на ЭВМ.

 

 

4.5. Переполнение разрядной сетки

 

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

Пример 3.26. Сложить два числа А = + 1101,1 и В = + 1011,0 (n=4, m=1) в обратном коде.

+
Решение. [A]обр = 0.1101,1

[B] обр = 0.1011,0

[C] обр = 1.1000,1

 

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

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

Пример 3.27. Сложить два числа А = - 1011 и В= - 1101 (n=4, m=0) в дополнительном коде .

+
Решение: [A]доп = 1.0101

[B]доп = 1.0011

[C]доп = 0.1000

Для обнаружения переполнения разрядной сетки используют следующие способы:

1. Сравнивают знаки слагаемых со знаком суммы. Сигнал переполнения вырабатывается тогда, когда знаки слагаемых одинаковы и не совпадают со знаком суммы.

2. Второй способ основан на применении модифицированных кодов . Модификация кодов заключается во введении дополнительного разряда, который располагается перед знаковым. Этот разряд часто называют разрядом переполнения. Иногда говорят, что модифицированные коды содержат два знаковых разряда. Положительные числа имеют в знаковых разрядах два нуля, отрицательные – две единицы. При использовании модифицированных обратного и дополнительного кодов признаком переполнения разрядной сетки является наличие в знаковых разрядах различных цифр 01 или 10.

Пример 3.28. Сложить числа А1= +1011 и В1= +1101, А2= -1100 и В2= -1101 (n=4, m=0) соответственно в модифицированных дополнительном и обратном кодах.

+1
Решение.

 

 
 


 

В обоих примерах произошло переполнение разрядной сетки.

При несовпадении знаковых разрядов в модифицированных кодах вырабатывается сигнал переполнения разрядной сетки.

 

– Конец работы –

Эта тема принадлежит разделу:

ОСНОВЫ ИНФОРМАТИКИ

КАЗАНСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ... им А Н ТУПОЛЕВА...

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Способы представления в ЭВМ отрицательных чисел

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

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

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

Показатели и количественные меры информации
  Много ли нужно информации? Обычно интуитивно считается: чем больше - тем лучше! Однако, это не так! Ведь после преобразования она должна передаваться по каналам, а далее обрабатыват

Переключательные функции одного и двух аргументов
  Рассмотрим некоторые ПФ одного и двух аргументов. В табл. 2.2 представлены все 4 функции одного аргумента. Таблица 2.2 x f0(

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

Логические элементы
  Рассмотрим некоторые логические элементы с одним и двумя входами, реализующие ПФ от одного и двух аргументов [11].

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

Перевод чисел из одной системы счисления в другую
  Использование в ЭВМ двоичной системы счисления связано с преодолением дополнительных трудностей, вызванных необходимостью перевода вводимых в ЭВМ чисел в двоичную систему счисления

Формы представления в ЭВМ числовых данных
В математике широко используются две формы записи чисел: естественная и нормальная. При естественной форме число записывается в естественном натуральном виде, например: 28759 – цело

ЭВМ - средство обработки информации
  Основным средством обработки информации в настоящее время является ЭВМ. ЭВМ -это взаимодействующая совокупность (рис.4.1) аппаратных средств (hardware) и программных средств (softwa

Пользовательское программное обеспечение
  Условно всех пользователей ЭВМ будем делить на три категории: пользователиÌ, программистыÌ, системныеÌ программисты.

Разработка прикладного программного обеспечения
  Процесс разработки программы для решения конкретной задачи разбивается на следующие задачи: 1 Постановка задачи. 2. Выбор метода решения задачи и разработка алгори

Языки программирования
В настоящее время считается, что существуют языки программирования четырех уровней: машинные языки; машинно-ориентированные языки; алгоритмические языки; языки четвертого поколения. Языки

Объектно-визуальное программирование
5.1.Объектно-ориентированное программирование По определению признанного авторитета в области объектно-ориентированных методов разработки программ Гради Буча [10] ”объектно-ориентированное

КРАТКИЙ СЛОВАРЬ
  +АЛГОРИТМ [algorithm] Точное предписание, определяющее вычислительный процесс, ведущий от варьируемых начальных данных к искомому результату. Одним из способов пред

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги