double arrow

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

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

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

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

Формат целого числа со знаком, байт Диапазон
Запись с порядком В обычной записи
  -27... 27-1 -128... 127
  -215... 215-1 -32768... 32767
  -231... 231-1 -2147483648... 2147483647

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

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

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

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

Биты числа                
Номер разряда                

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

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

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

Биты числа                
Номер разряда                

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

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

Биты числа                
Номер разряда                

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

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

Биты числа                
Номер разряда                

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

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



Сейчас читают про: