Форматы хранения целых чисел со знаком
Целые числа со знаком, как и беззнаковые, обычно занимают в памяти компьютера 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:
Биты числа | ||||||||
Номер разряда |
Обычно отрицательные десятичные числа при вводе в машину автоматически преобразуются в обратный или дополнительный двоичный код и в таком виде хранятся и обрабатываются. При выводе таких чисел из внутреннего представления машины во внешнее происходит обратное преобразование в отрицательные десятичные числа.
Представление в компьютере вещественных чисел
Дата добавления: 2019-10-16; просмотров: 512;