Представление целых чисел в компьютере
Представление чисел в памяти компьютера имеет специфическую особенность, связанную с тем, что в памяти ПК они должны располагаться в байтах – минимальных по размеру ячейках памяти.
Целые числа могут представляться в компьютере со знаком или без знака.
Целые числа без знака обычно занимают в памяти один байт (8-разрядная ячейка) или два байта (16-разрядная ячейка). Диапазон значений в первом случае от 000000002 до 111111112 (от 010 до 25510) , а в двухбайтовом формате — от 00000000 000000002 до 11111111 111111112 (от 010 до 6553510)
Чтобы получить внутреннее представление целого положительного числа N, хранящегося в k-разрядном машинном слове, необходимо:
1) перевести число N в двоичную систему счисления;
2) полученный результат дополнить слева незначащими нулями до k разрядов.
Например, для целого числа 1607 в двухбайтовой ячейке внутреннее представление N=(1607)10=(11001000111)2. будет следующим 0000 0110 0100 0111. Шестнадцатеричная форма внутреннего представления числа N будет 0647.
Разряды нумеруются справа налево, начиная с нуля. Примеры:
а) число 7210 = 10010002 в однобайтовом формате:
Номера разрядов | ||||||||
Биты числа |
б) это же число в двухбайтовом формате: 7210 = 00000000010010002
Целые числа со знаком обычно занимают в памяти компьютера один, два или четыре байта, при этом самый левый (старший) разряд (знаковый разряд) содержит информацию о знаке числа. Знак “плюс” кодируется нулем, а “минус” — единицей.
Диапазоны значений целых чисел со знаком
Формат числа в байтах | Диапазон | |
Запись С порядком | Обычная запись | |
–27 ... 27–1 | –128 ... 127 | |
–215 ... 215–1 | –32768 ... 32767 | |
–231 ... 231–1 | –2147483648 ... 2147483647 |
Рассмотрим особенности записи целых чисел со знаком на примере однобайтового формата, при котором для знака отводится один разряд, а для цифр абсолютной величины – семь разрядов.
В компьютерной технике применяются три формы записи (кодирования) целых чисел со знаком: прямой код, обратный код, дополнительный код.
Последние две формы применяются особенно широко, так как позволяют упростить конструкцию арифметико-логического устройства компьютера путем замены разнообразных арифметических операций cложения.
Положительные числа в прямом, обратном и дополнительном кодах изображаются одинаково — двоичными кодами с цифрой 0 в знаковом разряде. Например,
число (1)10=(1)2
Номера разрядов | ||||||||
Биты числа |
знак числа
Отрицательные числа в прямом, обратном и дополнительном кодах имеют разное изображение.
1. Прямой код. В знаковый разряд помещается цифра 1, а в разряды цифровой части числа — двоичный код его абсолютной величины.
Например, прямой код числа -1
Номера разрядов | ||||||||
Биты числа |
знак числа
2. Обратный код. Получается инвертированием всех цифр двоичного кода абсолютной величины числа, включая разряд знака: нули заменяются единицами, а единицы — нулями. Например, обратный код числа -1
Номера разрядов | ||||||||
Биты числа |
знак числа
3. Дополнительный код. Получается образованием обратного кода с последующим прибавлением единицы к его младшему разряду. Например, дополнительный код числа -1
Номера разрядов | ||||||||
Биты числа |
Определение.Дополнительный код отрицательного числа А, хранящегося в n ячейках, равен 2n -│А│
Для перевода дополнительного кода в десятичное число необходимо выполнить алгоритм:
1) Инвертировать дополнительный код;
2) Прибавить к полученному коду 1 и получить модуль отрицательного числа;
3) Перевести в десятичное число и приписать знак отрицательного числа.
Например, получим десятичное представление числа по его дополнительному коду 100101112
Решение.
1) Инвертируем дополнительный код 100101112. Получим 01101000 – обратный код. 2) Прибавим к полученному числу 1. Получим число 01101001. 3) Переведем полученную запись числа из двоичной в 10-ю форму. Получим число 105.
Дата добавления: 2015-11-18; просмотров: 2550;