Лекции.Орг


Поиск:




Категории:

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

 

 

 

 


Дополнительный код целого числа

A. Целые числа без знака

Целые числа без знака обычно занимают в памяти компьютера:

- один байт, в этом формате можно представить двоичные числа в диапазоне от 00000000 до 111111111 или в десятичном представлении от 0 до 255 (0 … 28 – 1);

- два байта, соответственно диапазон представляемых чисел в десятичной системе счисления будет от 0 до 65535 (0 … 216 – 1).

Пример 1. Представить число 7210 = 10010002 в однобайтовом формате:

Номера разрядов 7 6 5 4 3 2 1 0
Биты числа                

B. Целые числа со знаком

Целые числа со знаком обычно занимают в памяти компьютера:

- один байт, в этом формате можно представить двоичные числа в диапазоне от –0000000 до +11111111 или в десятичном представлении от -128 до 127 (–27 … 27 – 1);

- два байта, соответственно диапазон представляемых чисел в десятичной системе счисления –32768 до 32767 (–215 … 215 – 1);

- четыре байта, диапазон представляемых чисел в десятичной системе счисления от

–2147483648 до 2147483647 (–231... 231–1).

При этом самый левый (старший) разряд содержит информацию о знаке числа. Знак «плюс» кодируется нулем, а «минус» – единицей. Число располагаем в разрядной сетке так, чтобы цифра младшего разряда числа занимала крайнюю правую ячейку.

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

Для представления отрицательных чисел применяется обратный, или дополнительный коды. Они применяются для выполнения операции вычитания, которую заменяют операцией сложения чисел с разными знаками: a – b = a + (–b).

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

Прямой код целого числа

Под прямым кодом двоичного числа понимают запись самого числа. Знаковый разряд для положительных чисел определяют нулем (0), для отрицательных – единицей (1).

Пример 2. Представить положительное число 6910= 10001012 в однобайтовом формате:

Номера разрядов 7 6 5 4 3 2 1 0
Биты числа                

Пример 3. Представить отрицательное число5910 = – 1110112 в однобайтовом формате:

Номера разрядов 7 6 5 4 3 2 1 0
Биты числа                

 

 

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

Обратный код целого числа

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

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

Дополнительный код целого числа

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

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

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

Пример 4. Переведите + 2710 и – 2710 в прямой, обратный и дополнительный коды.

Число Прямой код Модуль числа Обратный код Дополнительный код
+ 2710 +110112 0 0011011 0 0011011 0 0011011 0 0011011
– 2710 –110112 1 0011011 0 0011011 11100100 11100101

Практическое задание

1. Запишите следующие числа в прямом, обратном и дополнительном кодах.

А) 11010112; Б) –1010112; В) –1011012; Г) –11001112;

2. Арифметические действия над целыми числами

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

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

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

При сложении чисел в дополнительном коде возникающая единица переноса в знаковом разряде отбрасывается.

Пример 5. Выполните сложение Х + Y = 15 – 5 =? в обратном и дополнительном кодах.

Сложить числа По правилам двоичной арифметики В обратном коде В дополнительном коде
Х = 1510 Y = – 510 Х + Y = 1010 Х = 1111 Y = – 101 Х + Y = 1010 Х обр = 0 0001111 Y обр = 1 1111010 1 0 0001001 Ä + 1 (Х + Y)обр = 0 0001010 Х доп = 0 0001111 Y доп = + 1 1111011 1 0 0001001 отбрасывается Ã (Х + Y) доп = 0 0001010

 

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

Пример 6. Выполните сложение Х + Y = – 5 – 7 =? в обратном и дополнительном кодах.

Сложить числа По правилам двоичной арифметики В обратном коде В дополнительном коде
Х = – 5 Y = – 7 Х + Y = –12 Х = – 101 Y = – 111 Х + Y = –1100 Х обр = 1 1111010 Y обр = + 1 1111000 1 1 1110010 Ä ð + 1 (Х + Y)обр= 1 1110011 Х доп = 1 1111011 Y доп = + 1 1111001 1 1 1110100 Ã отбрасывается (Х + Y) доп= 1 1110100

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

- из обратного кода: (Х + Y)обр = 1 1110011 ð (Х + Y)пр = 1 0001100

- из дополнительного кода: (Х + Y) доп = 1 1110100 ð (Х + Y)пр = 1 0001011 + 0 00000001,

(Х + Y)пр = 1 0001100.

3. Модифицированный обратный и дополнительный коды

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

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

Например, Х = 0 1011110

Y = 0 1101100

Х + Y = 1 1001010

Х и Y – коды положительных чисел, но в процессе сложения в знаковом разряде появилась «1», что означает код отрицательного числа. Чтобы распознать переполнение разрядной сетки, вводятся модифицированные коды.

В модифицированных обратном и дополнительном кодах под знак числа отводится не один, а два разряда: «00» соответствует знаку «+», «11» – знаку «–». Любая другая комбинация («01» или «10»), получившаяся в знаковых разрядах, является признаком переполнения разрядной сетки. Сложение чисел в модифицированных кодах ничем не отличается от сложения в обычных обратном и дополнительном кодах.

Пример 7. Даны два числа: Х = 101011 и Y = – 11110. сложить их в дополнительном и модифицированном дополнительных кодах.

Обычная запись Х = +0101011 Y = – 0011110
Обратный код Х обр = 01010100 Y обр = 1 1100001
Модифицированный обратный код = 00 1010100 = 11 1100001
Дополнительный код Х доп = 01010101 Y доп = 1 1100010
Модифицированный дополнительный код = 00 1010101 = 11 1100010

 

Дополнительный код Модифицированный дополнительный код
Х доп = 0 0101011 Y доп = + 1 1100010 1 0 0001101 отбрасывается Ã (Х + Y) доп = 0 0001101 = 00 0101011 = + 11 1100010 1 00 0001101 отбрасывается Ã = 00 0001101

4. Индивидуальные задания
по теме «Компьютерная арифметика»

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

2. Измените число Х и Y, добавив в конце числа две единицы. Сложите полученные числа в модифицированном обратном и модифицированном дополнительных кодах. Результат переведите в прямой код. Выполните проверку сложения, используя правила двоичной арифметики.

 

Вариант Числа Х и Y Вариант Числа Х и Y
  Х = –100101 Y = 11101   Х = –101101 Y = 1101
  Х = –110101 Y = 11101   Х = –1101111 Y = 10101
  Х = –1000111 Y = 11101   Х = –1110001 Y = 10011
  Х = –1010001 Y = 10011   Х = –1000011 Y = 10011
  Х = –1101001 Y = 10111   Х = –1010001 Y = 1111
  Х = –101001 Y = 10111   Х = –1010111 Y = 11100
  Х = –110101 Y = 1111   Х = –101111 Y = 1101
  Х = –110101 Y = 10011   Х = –1001011 Y = 10101
  Х = –100011 Y = 10011   Х = –1010001 Y = 1011
  Х = –110001 Y = 10111   Х = –1000111 Y = 11111
  Х = –111001 Y = 1110   Х = –100001 Y = 1111
  Х = –1011101 Y = 10111   Х = –1111000 Y = 101111
  Х = –1100000 Y = 1111   Х = –10101 Y = 1101

 



<== предыдущая лекция | следующая лекция ==>
о взыскании задолженности по контрактам и неустойки | Сведения о наружной и внутренней отделке здания
Поделиться с друзьями:


Дата добавления: 2017-02-24; Мы поможем в написании ваших работ!; просмотров: 912 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Даже страх смягчается привычкой. © Неизвестно
==> читать все изречения...

2421 - | 2132 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.009 с.