Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Элементы двоичной арифметики. Кодирование и обработка чисел в ЭВМ




 

Двоичная арифметика. Правило сложения двух чисел в двоичной системе счисления:

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

2) при сложении цифр в каждом разряде необходимо добавлять к их сумме единицы переноса из младших разрядов.

Таблица 2.1

Сложение + 1-ое слагаемое 2-ое слагаемое результат
     
     
     
     

 

 

- единицы переноса из младших разрядов
Пример 6. Сложение двух двоичных чисел 1001,012 и 1101,112.

1 11 1

+ 1001, 012

1101, 112

1 0111, 002

 

Пример 7. Вычитание двух двоичных чисел 1001,012 и 1101,112.

1 1 1

1 1 1

- 1 1 0 1, 0 12

1 0 0 1, 1 12

0 0 1 1, 1 02

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

Таблица 2.2

Умножение X множимое множитель результат
     
     
     
     

 

Пример 8. Умножение двух двоичных чисел 10012 и 11012.

x 10012

11012

+
1001

1001

11101012

 

Кодирование и обработка чисел в ЭВМ. Для алгебраического представления чисел, т.е. для представления чисел с учетом их знака, в вычислительных машинах используются специальные коды:

· прямой код числа;

· обратный код;

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

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

Прямой код числа A (обозначим Aпр).

Пусть A = a1 a2 а3..., ат, тогда:

при A > 0, Aпp = 0, a1 a2 а3..., ат;

при A<0, Aпp = 1, a1 a2 а3..., ат;

при A = 0 имеет место неоднозначность Aпр = 0, 0000... = 1, 0000....

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

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

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

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

Обратный код числа A, обозначим Aoбp.

Пусть A = a1 a2 а3..., ат и обозначает инверсию а, т. е. если а = 1, то = 0, и наоборот. Тогда:

при A > 0, Aoбp = 0, a1 a2 а3..., ат;

при A< 0, Aобр = 1, ;

при A = 0 имеет место неоднозначность Aобр = 0, 00...0 = 1, 11…1.

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

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

Например,

для А = 1001 А oбp = 0, 1011;

для A = -1010 Aoбp = 1, 0101;

для Аобр = 1, 00110 А = - 11001.

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

Сформулируем правило сложения чисел в обратном коде.

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

Например, сложить два числа А1 = + 101002 (2010) и А2 = - 010112
(-1110) в обратном коде.

+
А1обр = 0, 10100

А2обр = 1, 10100

10, 01000

1

Результат 0, 010012 (910).

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

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

Дополнительный код числа A, обозначим A доп.

Пусть, как и выше, A = a1 a2 а3... ат и обозначает величину, обратную а (инверсию а), т.е. если а= 1, то = 0, и наоборот. Тогда:

при А > 0, Aдоп = 0, a1 a2 а3..., ат;

при А < 0, Адon = 1, + 0,000... 1.

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

Например,

для А= 10112, А доn = 0, 10112;

для А = - 11002, А доп = 1, 01002;

для А = -00002, А доп = 10, 00002 = 0,00002 (1 исчезает). Неоднозначности в изображении нуля нет.

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

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

Например, перевести число А из дополнительного кода в прямой.

А доп = 1, 11011.1012 А обр = 1, 11011.1002

А пр = 1, 00100.0112

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

Ноль в дополнительном коде имеет единственное представление: [0] доп = 0, 00...00.

Сформулируем правило сложения чисел в дополнительном коде.

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

Например, сложить два числа А = + 1101.012 (13,2510) и
В = -110.0112 (-6,37510) в дополнительном коде.

А доп = 0, 1101.012 B доп = 1, 1001.1012 А доп = 0, 1101.010

+
B доп = 1, 1001.101

1 0, 0110.111

1опускается

Ответ: А доп + B доп = 0, 0110.1112 (6,87510)

Сложить два числа А = -1001,12 и В=- 11,10012 вдополнительном коде.

А доп = 1, 0110.1000

+
B доп = 1, 1100.0111

1 1, 0010.1111

1опускается

Ответ: А доп + B доп = 1, 0010.11112

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

Например, сложить два числа A = +1756310 и В = +1915710 в дополнительном коде.

А доп = 0, 100 0100 1001 10112 B доп= 0, 100 1010 1101 01012.

+
0, 100 0100 1001 1011

0, 100 1010 1101 0101

1, 000 1111 0111 00002

Т.е. при сложении двух положительных чисел получен отрицательный результат - переполнение.

Или, например, требуется сложить два числа A = -1756310 и
В = -1915710 в дополнительном коде.

А доп = 1, 011 1011 0110 01012 Bдоп= 1, 011 0101 0010 10112.

+
1, 011 1011 0110 0101

1, 011 0101 0010 1011

1 0, 111 0000 1001 00002

Т.е. при сложении двух отрицательных чисел получен положительный результат - переполнение.

Для обнаружения переполнения и оповещения о возникшей ошибке в компьютере используются специальные средства. В процессоре ЭВМ содержаться два индикатора - индикатор переноса и индикатор переполнения. Каждый индикатор содержит 1 бит информации и может иметь значение, равное 1 (индикатор установлен) или 0 (индикатор сброшен). Индикатор переноса указывает перенос из знакового бита, а индикатор переполнения - на перенос в знаковый бит. Таким образом, после завершения операции, в которой происходит перенос в старший бит, процессор устанавливает индикатор переполнения. Если такого нет, то индикатор переполнения сбрасывается. Индикатор переноса обрабатывается аналогичным образом.

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

 

§ 2.3. Кодирование текстовой,




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


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


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



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




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