Студопедия Главная Случайная страница Обратная связь

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

Представление целых отрицательных чисел





Формат хранения целых чисел со знаком аналогичен формату хранения двоичного числа без знака (см. рис. 5.1), за исключением того, что старший разряд числа отводится для хранения знака числа - s. При хранении положительного числа знаковый разряд принимает значение 0, а при хранении отрицательного числа – 1. Целое число со знаком может занимать в памяти 1, 2, 4 и 8 байтов. Формат хранения целого двоичного числа со знаком, занимающего в памяти два байта и принимающего значения от –32768 до 32767, представлен на рис. 5.3.

                               
S b b b b b b b b b b B b b b b

 

Рис. 5.3

Для хранения целых отрицательных чисел используются обратный и дополнительный коды.

Рассмотрим целое отрицательное n -разрядное двоичное число:

,

где an -1,..., a 1, а 0 - цифры или соответствующие веса цифр: 0 и 1 разрядов целого отрицательного n разрядного двоичного числа; -an -1... а 1 a 0 - запись целого отрицательного n разрядного двоичного числа; п -1,..., 1, 0 - номера разрядов целого отрицательного n разрядного двоичного числа; S -знак суммы; i = 0, n -1 - нижний и верхний пределы суммирования; ai´ 2 i - весовой коэффициент i- го разряда (i = 0, n - 1).

Абсолютная величина целого отрицательного n разрядного двоичного числа равна:

.

Запись числа в форме: zan -1 ...а 1 a 0будем называть прямым кодом целого числа со знаком. Через z обозначен знак числа («-» или «+»).

Для записи числа в обратном и дополнительном кодах вводится дополнительный разряд с номером n с отрицательным весовым коэффициентом: - C, C > 0.

Для образования обратного кода коэффициент С выбирают равным максимальному n разрядному числу:

C = 2 n - 1.

Значение числа N в обратном коде определяется выражением:

 

N = bnbn -1... b 1 b 0 = bn´ (-2 n + 1) + bn -1 qn -1+…+ b 1 q 1+ b 0 q 0,

или

,

где bn, bn -1,..., b 1, b 0 - цифры и соответствующие веса цифр: 0 и 1 разрядов числа; bn - дополнительный знаковый разряд, для неотрицательных чисел равен 0 (bn = 1), для отрицательных чисел равен единице (bn = 1); bnbn -1... b 1 b 0 - запись целого n разрядного отрицательного числа в обратном коде; n, п - 1,..., 1, 0 - номера разрядов; bi ´ 2 i - весовой коэффициент i -го разряда (i = 0, n -1); (-2 n + 1) - весовой коэффициент знакового n -го разряда.

Пример 5.16. Пусть в обратном коде четырехразрядное число A имеет вид: 1011 (знаковый разряд 1, число отрицательное). Тогда это число в десятичной системе счисления равно:

A = 1 ´ (-23 + 1) + 0 ´ 22 + 1 ´ 21 + 1 ´ 20 = -7 + 0 + 2 + 1 = -4 (-01002).

Пример 5.17. Пусть в обратном коде четырехразрядное число B имеет вид: 0100 (знаковый разряд 0, число неотрицательное). Тогда это число в десятичной системе счисления равно:

B = 0 ´ (-23 + 1) + 1 ´ 22 + 0 ´ 21 + 0 ´ 20 = 0 + 4 + 0 + 0 = +4 (+01002).

Найдем правило нахождения (n + 1)-разрядного обратного кода m -разрядного отрицательного числа (mn). Запишем равенства:

;

;

;

.

Последнее равенство справедливо при 1- bi = ai или bi = 1 - ai (i = 0, n - 1).

Таким образом, для получения (n + 1)-разрядного обратного кода (цифры - bi, i = 0, n - 1) целого m -разрядного (mn) отрицательного числа (цифры - aj, j = 0, m -1) необходимо:

1) дополнить исходное m -разрядное число -am -1... а 1 a 0 незначащими n - m нулями до разрядности n, т.е получить число: -an -1 an -2 … amam -1... а 1 a 0, aj =0, j = m, n - 1);

2) получить цифры обратного кода bi (i = 0, n - 1). Для этого в n разрядах абсолютной величины исходного числа ai (i= 0, n -1), дополненной до разрядности n, заменить 1 на 0, а 0 на 1 (bi = 1 - ai, i = 0, n -1);

3) в разряд с номером n записать 1 (bn = 1).

Пример 5.18. Найдем шестиразрядный обратный код числа -410 (-1002). Знаковый разряд имеет номер 5 (n = 5). Количество разрядов в прямом коде числа равно 3 (m = 3).

1. Дополним исходное число двумя незначащими нулями (n - m = = 5 - 3 = 2) до разрядности 5:

-1002 = -001002.

2. Получим цифры обратного кода bi (i = 0, 4). В пяти разрядах исходного числа меняем цифры 0 на 1 и 1 на 0:

цифры исходного числа: 00100

цифры обратного кода: 11011

3. Формируем старший знаковый разряд: 11011 ® 1111011.

Таким образом, шестиразрядный обратный код числа -4 равен 1111011.

Заметим, что запись неотрицательного числа при нахождении его обратного кода не изменяется:

;

;

.

Равенство выполняется при bi = ai., i = 0, n -1, bn = 0.

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

Для этого необходимо:

1) вычеркнуть n -й разряд обратного кода числа;

2) провести замену в оставшихся n -1 разрядах 1 на 0, 0 на 1;

3) приписать к полученной абсолютной величине числа знак «минус».

Пример 5.19. Пусть обратный код числа равен 1011 (n = 3). Найдем прямой код числа.

1. Вычеркиваем третий разряд обратного кода числа:

1011 ® 011.

2. Проводим замену в оставшихся трех разрядах 1 на 0, 0 на 1:

011

3. Приписываем слева к полученной абсолютной величине числа знак «минус»:

1002 ® -1002 (-410).

Таким образом, четырехразрядный обратный код числа 1011 соответствует числу -4.

Пример 5.20. Пусть обратный код числа равен 1111 (n = 3). Найдем прямой код числа.

1. Вычеркиваем третий разряд обратного кода числа:

1111 ® 111.

2. Проводим замену в оставшихся трех разрядах 1 на 0, 0 на 1:

111

3. Приписываем слева к полученной абсолютной величине числа знак «минус»:

02 ® -02 (010).

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

При использовании обратного кода числа число 0 имеет два представления: 000..00 и 111..11.

Значения минимальных отрицательных и максимальных положительных целых чисел, которые можно хранить в обратном коде в словах размера 1, 2, 4 и 8 байтов, показаны в табл. 5.3.При заполнении таблицы использовались выражения для определения минимального отрицательного и максимального положительного числа:

L min = -28´ l -1 - 1, (5.3)

L max = 28´ l -1 - 1, (5.4)

где L min- минимальное целое отрицательное число, представленное в обратном коде; L max- максимальное целое положительное число, представленное в обратном коде; l - размер слова в байтах.

 

 

Таблица 5.3

Размер слова в байтах Размер слова в битах Значение минимального числа Значение максимального числа
    -(27 -1)= - 127 (27 -1)= 127
    -(215 - 1) = -32767 (215 - 1) = 32767
    -(231 - 1) = -2147483647 (231 - 1) = 2147483647
    -(263 - 1) < -16 ´ 1018 (263 - 1) < 16 ´ 1018

 

 

Для образования дополнительного кода коэффициент С выбирают равным C = 2n.

Тогда значение числа определяется выражением:

,

где dn, dn -1,..., d 1, d 0 - цифры и соответствующие веса цифр: 0 и 1; dn - дополнительный знаковый разряд, для неотрицательных чисел равен 0 (dn = 0), для отрицательных чисел равен единице (dn = 1); dndn -1... d 1 d 0 - запись целого (n +1)-разрядного отрицательного числа в дополнительном коде; n, п - 1,..., 1, 0 - номера разрядов; di ´ 2 i - весовой коэффициент i -го разряда дополнительного кода числа (i = 0, n -1). Весовой коэффициент n -го разряда дополнительного кода числа равен 2 n.

Пусть в дополнительном коде число имеет вид: 1100. Тогда это число в прямом коде равно:

N = 1 ´ (-23) + 1 ´ 22 + 0 ´ 21 + 0 ´ 20 = -8 + 4 + 0 + 0 = -410 = -1002.

Пусть в дополнительном коде число имеет вид: 0100. Тогда это число в прямом коде равно:

N = 0 ´ (-23) + 1 ´ 22 + 0 ´ 21 + 0 ´ 20 = 0 + 4 + 0 + 0 = 410 =+1002.

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

;

;

.

Так как , то:

;

;

;

.

Чтобы записать прямой код отрицательного числа, представленного в n -разрядном дополнительном коде, необходимо:

1) отбросить знаковый разряд dn;

2) найти обратный код полученного числа. Для этого необходимо заменить в разрядах di (i =0, n -1) нули единицами, а единицы - нулями;

3) к полученному числу прибавить единицу. При этом будет получена абсолютная величина искомого отрицательного числа в двоичной системе счисления;

4) слева приписать к полученной абсолютной величине знак «минус».

Пример 5.21. Найдем запись двоичного числа в прямом коде, если его четырехразрядный дополнительный код равен 1100.

1. Отбросим старший разряд: 1100 ® 100.

2. Найдем обратный код дополнительного кода числа:

100

3. К полученному числу прибавим единицу:

0112 + 12 = 1002.

4. Слева к полученному числу припишем знак «минус»:

1002 ® -1002.

Пример 5.22. Найдем запись двоичного числа в прямом коде, если его четырехразрядный дополнительный код равен 1000.

1. Отбросим старший разряд: 1000 ® 000.

2. Найдем обратный код дополнительного кода числа:

000

3. К полученному числу прибавим единицу:

1112 + 12 = 10002.

4. Слева к полученному числу припишем знак «минус»:

10002 ® -10002.

Пример 5.23. Найдем запись двоичного числа в прямом коде, если его четырехразрядный дополнительный код равен 1111.

1. Отбросим старший разряд: 1111 ® 111.

2. Найдем обратный код полученного числа:

111

3. К полученному числу прибавим единицу:

02 + 12 = 12.

 

4. Припишем знак «минус»:

12 ® -12.

Определим правило нахождения n разрядного дополнительного кода целого m- разрядного отрицательного числа:

;

;

;

.

Чтобы найти представление m- разрядного двоичного целого отрицательного числа в дополнительном коде с количеством двоичных разрядов n (n > m) необходимо выполнить следующие действия:

1) дополнить число слева n-m нулями до разрядности n, an = 0;

2) найти обратный код полученного числа. При этом двоичные нули исходного числа заменяются двоичными единицами, а двоичные единицы - двоичными нулями, 1 - an становится равным единице;

3) к полученному обратному коду прибавить единицу.

Пример 5.24. Найдем шестиразрядный дополнительный код числа -1002.

1. Дополним исходное число до необходимой разрядности:

100 ® 00100.

2. Найдем обратный код полученного числа:

00100

3. Прибавим единицу к полученному коду:

11001 + 1 =11010.

 

4. Припишем единицу знакового разряда:

11010 ® 111010.

Заметим, что отрицательные целые n -разрядные числа вида -2 n -1 можно записать в дополнительном коде с n разрядами.

Пример 5.25. Найдем шестиразрядный дополнительный код шестиразрядного числа -25.

1. Дополнять исходное число -25 = -1000002 до разрядности равной 6 в этом случае нет необходимости. Число -25 уже шестиразрядное.

2. Найдем значения 1 - a i (i = 1, 6):

ai 100000

1 - a i 011111

3. Прибавим единицу к полученному числу:

011111 + 1 =100000.

4. Припишем единицу знакового разряда слева к числу в этом случае нет необходимости, так как уже b 5 = 1.

Таким образом, дополнительный код числа -25 равен 100000. Проверим результат преобразования.

1. Отбросим знаковый разряд:

00000.

2. Восстановим прямой код полученного числа:

11111.

3. К полученному числу прибавим единицу:

111112 + 12 = 1000002.

4. Слева к полученному числу припишем знак «минус»:

1000002 ® -1000002.

Полученный результат совпал с исходным числом:

-1000002 = -25.

Значения минимальных отрицательных и максимальных положительных целых чисел, которые можно хранить в дополнительном коде в словах размера 1, 2, 4 и 8 байтов, показаны в табл. 5.5. При заполнении таблицы использовались выражения для определения минимального отрицательного и максимального положительного числа:

L min = -28´ l –1;

L max = 28´ l –1 - 1,

где L min- минимальное целое отрицательное число, представленное в обратном коде; Lmax - максимальное целое положительное число, представленное в обратном коде; l - размер слова в байтах.


Таблица 5.5

Размер слова в байтах Размер слова в битах Значение минимального числа Значение максимального числа
    -27= - 128 (27 -1)= 127
    -215 = -32768 (215 - 1) = 32767
    -231 = -2147483648 (231 - 1) = 2147483647
    -263 < -16 ´ 1018 (263 - 1) < 16 ´ 1018

 







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




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


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


ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...


Теория усилителей. Схема Основная масса современных аналоговых и аналого-цифровых электронных устройств выполняется на специализированных микросхемах...

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

Вопрос 1. Коллективные средства защиты: вентиляция, освещение, защита от шума и вибрации Коллективные средства защиты: вентиляция, освещение, защита от шума и вибрации К коллективным средствам защиты относятся: вентиляция, отопление, освещение, защита от шума и вибрации...

Задержки и неисправности пистолета Макарова 1.Что может произойти при стрельбе из пистолета, если загрязнятся пазы на рамке...

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

ПУНКЦИЯ И КАТЕТЕРИЗАЦИЯ ПОДКЛЮЧИЧНОЙ ВЕНЫ   Пункцию и катетеризацию подключичной вены обычно производит хирург или анестезиолог, иногда — специально обученный терапевт...

Ситуация 26. ПРОВЕРЕНО МИНЗДРАВОМ   Станислав Свердлов закончил российско-американский факультет менеджмента Томского государственного университета...

Studopedia.info - Студопедия - 2014-2026 год . (0.011 сек.) русская версия | украинская версия