Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование и информатика / ТОИ / Учебник по Забуге.docx
Скачиваний:
71
Добавлен:
03.01.2020
Размер:
10.43 Mб
Скачать

4.1.2. Форматы хранения целых чисел со знаком

↑ Наверх

Целые числа со знаком обычно также, как и беззнаковые, занимают в памяти компьютера один, два или четыре байта, при этом самый левый (старший) разряд содержит информацию о знаке числа. Знак «+» кодируется нулем, а «-» единицей. Таким образом, под само число отводится 7 разрядов с нулевого до шестого.

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

Таблица 4.2. Диапазоны значений целых чисел со знаком

Формат целого числа со знаком в байтах

Диапазон

запись с порядком

в обычной записи

1

-27 ... 27-1

-128 ... 127

2

-215 ... 215-1

-32768 ... 32767

4

-231 ... 231-1

-2147483648 ... 2147483647

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

Рассмотрим перечисленные форматы на примере однобайтового представления.

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

Пример 4.2.Число 4510 = 1011012. Т.к. число положительное, то в старшем разряде 0. Число 45 в прямом, обратном и дополнительном кодах выглядит одинаково:

Биты числа

0

0

1

0

1

1

0

1

Номер разряда

7

6

5

4

3

2

1

0

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

Прямой код. В знаковый разряд помещается цифра 1, а в разряды цифровой части числа — двоичный код его абсолютной величины.

Пример 4.3.Число -4510 = -1011012. Т.к. число отрицательное, то в старшем разряде 1:

Биты числа

1

0

1

0

1

1

0

1

Номер разряда

7

6

5

4

3

2

1

0

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

Пример 4.3 (продолжение 1) Абсолютная величина: 0101101, после инвертирования: 1010010. Получаем обратный код числа:

Биты числа

1

1

0

1

0

0

1

0

Номер разряда

7

6

5

4

3

2

1

0

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

Пример 4.3 (продолжение 2) Мы уже имеем обратный код, прибавим к нему 1, получим дополнительный код числа -4510:

Биты числа

1

1

0

1

0

0

1

1

Номер разряда

7

6

5

4

3

2

1

0

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

← 4.0. Введение

4.2. Представление в компьютере вещественных... →