Главная страница / 4. Кодирование (представление) данных в ...: 4.1. Представление целых ...
4.1. Представление целых чисел в компьютере
← 4.Введение | 4.2. Представление в компьютере вещественных... → |
Навигация по разделу:
4.1.1. Форматы хранения целых чисел без знака
Целые числа могут представляться в компьютере со знаком или без знака.
Целые числа без знака в компьютерах обычно занимают в памяти 1, 2 или 4 байта. Размер занимаемой памяти зависит от разрядности процессора, т.е. величины машинного слова. Для современных моделей компьютеров машинное слово размером 64 бита стало обычным делом, поэтому однобайтовый формат хранения целых чисел без знака становится редкостью.
Диапазон значений, который может храниться в конкретном формате, легко определяется. Например, для однобайтового формата это значения от 00000000 до 11111111, что составляет в десятичной системе диапазон от 0 до (28-1), т.е. от 0 до 255. Аналогично определяются диапазоны значений для других форматов (табл. 4.1).
Таблица 4.1. Диапазоны значений целых чисел без знака
Формат целого числа без знака, байт | Диапазон | |
---|---|---|
Запись с порядком | В обычной записи | |
1 | 0 ... 28-1 | 0 ... 255 |
2 | 0 ... 216-1 | 0 ... 65535 |
4 | 0 ... 232-1 | 0 ... 4294967296 |
Пример 4.1. Представим число 53 в одно– и двухбайтовом форматах хранения беззнаковых целых чисел. Переведем 53 в двоичную систему счисления: 5310 = 1101012.
1. В однобайтовом формате оно будет выглядеть так:
Биты числа | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 1 |
Номер разряда | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
2. В двухбайтовом формате:
Биты числа | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 1 |
Номер разряда | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
4.1.2. Форматы хранения целых чисел со знаком
Целые числа со знаком, как и беззнаковые, обычно занимают в памяти компьютера 1, 2 или 4 байта, при этом самый левый (старший) разряд содержит информацию о знаке числа. Знак «+» кодируется нулем, а «-» – единицей. Таким образом, под само число отводится семь разрядов: с нулевого до шестого.
Диапазоны значений целых чисел со знаком для одно-, двух- и четырехбайтового форматов приведены в табл. 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.Введение | 4.2. Представление в компьютере вещественных... → |