Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Представление чисел в ЭВМ. Прямой, обратный и дополнительный коды. (Лекция 4)
В ВТ, с целью упрощения реализации арифметических операций, применяют специальные коды. За счет этого облегчается определение знака результата операции, а операция вычитания чисел сводится к арифметическому сложению. В результате упрощаются устройства, выполняющие арифметические операции. В ВТ применяют прямой, обратный и дополнительный коды. Прямой двоичный код Рпр(х) — это такое представление двоичного числа х, при котором знак «+» кодируется нулем в старшем разряде числа, а знак «-» — единицей. При этом старший разряд называется знаковым. Например, числа +5D и -5D, представленные в прямом четырехразрядном коде, выглядят так: +5D = 0'101 В; -5D = 1'101. Здесь апострофом условно (для удобства определения знака) отделены знаковые разряды. Обратный код Робр(х) получается из прямого кода по следующему правилу: Из приведённого выражения видно, что обратный код для положительных чисел совпадает с прямым кодом. Чтобы представить отрицательное двоичное число в обратном коде, нужно оставить в знаковом разряде 1, во всех значащих разрядах заменить 1 на 0, а 0 на 1. Такая операция называется инвертированием и обозначается горизонтальной чертой над инвертируемым выражением Пример 4. Получить обратный код для числа.х =-11D. Решение.
Считается, что здесь числа представлены пятью разрядами. Из рассмотренного примера видно, что обратный код для положительных чисел совпадает с прямым, а для отрицательных чисел получается инверсией (переворотом) всех разрядов, кроме знакового разряда. Дополнительный код Рдоп(х) образуется следующим образом: Из выражения видно, что дополнительный код положительного числа совпадает с прямым кодом, а для отрицательного числа получается инверсией всех значащих разрядов и добавлением единицы к младшему разряду результата. Дополнительный код отрицательного числа может быть получен из обратного кода путем прибавления 1 к младшему разряду обратного кода (естественно, с учетом переносов между разрядами). Пример 5. Получить дополнительный код для числа х = -13D. Решение. Pnp(x) = (1'1101)прямой код Робр(х) =(1’0010) обратный код Рдоп(х ) = (1’0011) дополнительный код.
При алгебраическом сложении двоичных чисел положительные слагаемые представляют в прямом коде, а отрицательные — в дополнительном коде и производят арифметическое суммирование этих кодов, включая разряды знаков, которые при этом рассматривают как старшие разряды. При возникновении переноса из разряда знака единицу переноса отбрасывают, в результате получают алгебраическую сумму в прямом коде, если эта сумма положительная, и в дополнительном коде, если сумма отрицательная.
Пример 6. Выполнить алгебраическое сложение с использованием дополнительного кода для чисел х1 =7D х2- -3D. Решение. Необходимо найти сумму: у = х1 + х2. Учитывая, что х1 > 0, это число нужно представить в прямом коде, а так как х2 < О, то х2 нужно перевести в дополнительный код. Так как результат положителен (в знаковом разряде Р(у) — 0), значит, он представлен в прямом коде. После перевода двоичного числа в десятичную СС получим ответ: у = +4D. Пример 7. Выполнить алгебраическое сложение с использованием дополнительного кода для чисел X; = 8D и х2 - -13D. Необходимо найти сумму: у = x1 + х2. Число х1нужно представить в прямом коде, а х2 — в дополнительном коде. В знаковом разряде стоит единица, и, значит, результат получен в дополнительном коде. Для перехода от дополнительного кода Рдоп(у)=1’1011В к прямому коду Рпр(у) необходимо выполнить следующие преобразования: Робр(y) = Рдоп(у) -1 =1’1011-1=1’1010 Рпр(y) = Робр(y) = 1’Инв(1010) = 1’0101В. Переходя от двоичной СС к десятичной СС, получим ответ: у = -5D.
Представление в ЭВМ целых чисел. Целые числа без знака Обычно занимают в памяти компьютера один или два байта. В однобайтовом формате принимают значения от 000000002 до 111111112 = 255 В двубайтовом формате - от 00000000 000000002 до 11111111 111111112=65535 Примеры:
а) число 7210 = 10010002 в однобайтовом формате: б) это же число в двубайтовом формате: в) число 65535 в двубайтовом формате:
Целые числа со знаком Обычно занимают в памяти компьютера один, два или четыре байта, при этом самый левый (старший) разряд содержит информацию о знаке числа.
Диапазоны значений целых чисел со знаком: 1байт -27... 27-1 -128... 127 2 байт -215... 215-1 -32768... 32767 4 байт -231... 231-1 -2147483648... 2147483647
Рассмотрим особенности записи целых чисел со знаком на примере однобайтового формата, при котором для знака отводится один разряд, а для цифр абсолютной величины - семь разрядов. Положительные числа хранятся в памяти в прямом коде. Обычно отрицательные десятичные числа при вводе в машину автоматически преобразуются в обратный или дополнительный двоичный код и в таком виде хранятся, перемещаются и участвуют в операциях. При выводе таких чисел из машины происходит обратное преобразование в отрицательные десятичные числа. |
Последнее изменение этой страницы: 2017-03-14; Просмотров: 610; Нарушение авторского права страницы