Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпоры к госам.doc
Скачиваний:
7
Добавлен:
01.04.2025
Размер:
7.08 Mб
Скачать

1. Представление чисел в обратном коде. Сложение и вычитание в обратном коде(Женатов)

Обратный код получается инвертированием всех “0” на “1” и всех “1” на “0” прямого кода числа.

00101110 – прямой код числа 46, 11010001 – обратный код числа 46.

Сложение (и вычитание) обратных кодов. Здесь при сложении чисел А и В имеют место четыре основных и два особых случая:

Десятичная запись:

Двоичные коды

+ 3

7

10

+ 0 0000011

0 0000111

0 0001010

1. А и В положительные. При суммировании складываются все разряды, включая разряд знака. Так как знаковые разряды положительных слагаемых равны нулю, разряд знака суммы тоже равен нулю. Например:

2. А положительное, B отрицательное и по абсолютной величине больше, чем А. Например:

Десятичная запись:

Двоичные коды

+ 3

-10

-7

+ 0 0000011

1 1110101 – обратный код числа -10

1 1111000 – обратный код числа -7


3. А положительное, B отрицательное и по абсолютной величине меньше, чем А. Например:

Десятичная запись:

Двоичные коды

+ 10

-3

7

+ 0 0001010

1 1111100 – обратный код числа -3

10 0000110

+1

0 0000111

Если происходит переполнение в знаковом разряде, то переполнение прибавляется к младшему разряду числа.

4. А и В отрицательные. Например:

Десятичная запись:

Двоичные коды

+ -3

-7

-10

+ 1 1111100 – обратный код числа -3

1 1111000 – обратный код числа -7

11 1110100

+1

1 1110101 – обратный код числа -10


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

Ниже приведены два возможных случая переполнения.

5. А и В положительные, сумма А+В больше, либо равна 2n–1, где n — количество разрядов формата чисел (для однобайтового формата n=8, 2n–1 = 27 = 128). Например:

Десятичная запись:

Двоичные коды

+ 65

97

162

+ 0 1000001

0 1100001

1 0100010 – Переполнение


Семи разрядов цифровой части числового формата недостаточно для размещения восьмиразрядной суммы (16210 = 101000102), поэтому старший разряд суммы оказывается в знаковом разряде. Это вызывает несовпадение знака суммы и знаков слагаемых, что является свидетельством переполнения разрядной сетки.

6. А и В отрицательные, сумма абсолютных величин А и В больше, либо равна 2n–1. Например:

Десятичная запись:

Двоичные коды

+ -63

-95

158

+ 1 1000000 – обратный код числа -63

1 0100000 – обратный код числа -95

1 0100010 – Переполнение

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