Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
теория_печать.doc
Скачиваний:
3
Добавлен:
01.05.2025
Размер:
109.06 Кб
Скачать

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

Добавление отрицательных значений приводит к появлению некоторых новых свойств. Ровно половина из всех 2N чисел теперь будут отрицательными; учитывая необходимость нулевого значения, положительных будет на единицу меньше, т.е. допустимый диапазон значений оказывается принципиально несимметричным.

Для того чтобы различать положительные и отрицательные числа, в двоичном представлении чисел выделяется знаковый разряд. Для кодирования знака используется самый старший бит, причем нулевое значение в нем соответствует знаку "+", а единичное – «-». Подчеркнем, что с точки зрения описываемой системы кодирования число ноль является положительным, т.к. все его разряды, включая и знаковый, нулевые.

Диапазон целых чисел со знаком

Формат

Количество разрядов (n)

Мини-

мальное

число

Максимальное число

Интервал чисел

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

2 байт (n = 16)

-2n-1-1=216-1 = -32768

2n-1-1=216-1-1= 32767

-32768…32767

4 байт (n = 32)

-2n-1-1=232-1 = -2 147 483 648

2n-1-1=232-1-1= 2 147 483 647

-2 147 483 648… 2 147 483 647

а) Целые числа со знаком «+»

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

Алгоритм представления целого числа со знаком плюс в памяти компьютера

  1. Перевести число в двоичную систему счисления.

  2. Нарисовать к–разрядную сетку.

  3. Указать код знака «+» в старшем разряде.

  4. Записать число в разрядную сетку, начиная с младшего разряда.

  5. Заполнить оставшиеся разряды нулями.

Пример 2. Представить число +2510 в двухбайтовой разрядной сетке

  1. Переведем число 2510 в двоичную систему счисления 110012

  2. Нарисуем двухбайтовая разрядную сетку

    15

    14

    13

    12

    11

    10

    9

    8

    7

    6

    5

    4

    3

    2

    1

    0

  3. Укажем код знака «+» в старшем разряде

    15

    14

    13

    12

    11

    10

    9

    8

    7

    6

    5

    4

    3

    2

    1

    0

    0

  4. Запишем число в разрядную сетку, начиная с младшего разряда

    15

    14

    13

    12

    11

    10

    9

    8

    7

    6

    5

    4

    3

    2

    1

    0

    0

    1

    1

    0

    0

    1

  5. Заполним оставшиеся разряды нулями

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

0

0

1

1

0

0

1

б) Целые числа со знаком «-»

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

2N - |А|

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