Студопедия

КАТЕГОРИИ:


Архитектура-(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», во всех значащих разрядах заменить «1» на «0», а «0» на «1». Такая операция называется инвертированием и обозначается горизонтальной чертой над инвертируемым выражением.

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

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

Пример 3.2. Найти прямой, обратный и дополнительный код числа 16910.

(прямой, обратный и дополнительный коды совпадают).

Пример 3.3. Найти прямой, обратный и дополнительный код числа -8710.

; ;

.

Для проверки можно выполнить сложение чисел из примеров 3.1 и 3.2 в прямом коде: .

 

3.3. Индикаторы переноса и переполнения

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

1111+0001=0000 () – в системе со знаком это верно; 0111+1=1000 () – перенос в знаковый бит – не верно.

Для учета таких явлений в процессоре существует два индикатора: индикатор переноса и индикатор переполнения. Каждый индикатор содержит 1 бит информации. Индикатор переноса указывает на перенос из знакового бита, а индикатор переполнения - на перенос в знаковый бит. Таким образом, после завершения операции, в которой происходит перенос в старший бит, процессор устанавливает индикатор переполнения.

Пример. 3.4. Рассмотрим сложение двух чисел 0101+0011=1000. В результате выполнения операции сложения произошел перенос в знаковый бит, а переноса из знакового бита не было. После этой операции индикатор переноса будет сброшен, а индикатор переполнения – установлен. Если рассматривать эти два числа, как целые без знака, то результат является арифметически правильным: , так как индикатор переноса сброшен. Если рассматривать числа в системе со знаком, то бит переполнения показывает, что произошло изменение знака (перенос в знаковый бит есть, а из него – нет), поэтому арифметический результат неправильный: .

Пример. 3.5. В результате сложения 1101+0101=0010 происходит перенос и в знаковый бит и из знакового бита. Поэтому будет установлен индикатор переноса, а индикатор переполнения – сброшен. Следовательно, в системе чисел без знака результат является арифметически неправильным: , а в системе чисел со знаком – правильным: .

Пример. 3.6. В результате сложения 0011+0010=0101 не происходит переноса ни в знаковый бит, ни из него. Поэтому оба индикатора переноса будут сброшены. Следовательно, в этом случае в обеих системах результат будет арифметически правильным: .

 

<== предыдущая лекция | следующая лекция ==>
Данные и их кодирование | Первое поколение ЭВМ
Поделиться с друзьями:


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


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



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




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