Представление чисел в компьютере
Целые числа без знака
Целые числа без знака обычно занимают в компьютере один, два или четыре байта
Таблица 2.1
Формат числа в байтах | Количество двоичных разрядов числа | Диапазон чисел |
0 ÷ 255 | ||
0 ÷ 65 535 | ||
0 ÷ 4 294 967 295 |
Целые числа со знаком
Целые числа со знаком также занимают один, два или четыре байта, при этом самый левый разряд отведен для кода знака числа: «0» - положительное число, «1» - отрицательное число. Поэтому разрядность и диапазон значений этих чисел меньше указанных в табл. 2.1.
Таблица 2.2
Формат числа в байтах | Количество двоичных разрядов числа | Диапазон чисел |
- 128 ÷ - 127 | ||
- 32 768 ÷ 32 767 | ||
- 2 147 483 648 ÷ 2 147 483 647 |
В компьютере применяется три формы кодов записи целых чисел со знаком: прямой код, обратный код и дополнительный код.
Положительное число имеет одинаковые прямой, обратный и дополнительный коды – двоичное число и цифра 0 в разряде для знака.
Пример. Запись числа 1100101 в однобайтовом формате:
0 |
знак числа «+»
Отрицательное число имеет разные прямой, обратный и дополнительный коды.
Прямой код отрицательного числа содержит цифру 1 (знак числа ‘-‘) и абсолютную величину двоичного числа.
Обратный код отрицательного числа содержит цифру 1 и инвертированные (замененные на 1 нули и замененные на 0 единицы) цифры прямого кода.
Дополнительный код - это обратный код с прибавленной единицей в младшем разряде.
Пример.Записать число – 11101 в прямом, обратном и дополнительном кодах однобайтового формата. Прямой код:
Обратный код:
Дополнительный код:
Представление в компьютере чисел в обратном и дополнительном кодах широко применяется, так как позволяет выполнять арифметические действия с числами только при помощи операций сложения и сдвига регистра. Это дает возможность упростить устройство центрального процессора компьютера.
Обычно отрицательные числа при вводе в компьютер автоматически преобразуются в обратный или дополнительный двоичный код и в таком виде хранятся, перемещаются и участвуют в операциях. При выводе таких чисел из компьютера происходит обратное преобразование в отрицательные десятичные числа.
Вещественные числа
Любое число N в системе счисления с основанием q можно записать в виде
N = M×qP, 2.3
где Р – порядок числа,
М – мантисса, содержащая все цифры числа.
Запись числа в виде (2.3) называется представлением числа с плавающей точкой.
Если мантисса числа – правильная дробь (т.е. 0.1 £ М < 1), то число N называется нормализованным.
Пример. Десятичные числа: 312.41 = 0.31241×103; - 0.0000723917 = 0.723917×10-4. Двоичные числа: 0.000011 = 0.11× 2-100; - 101.01 = 0.10101× 211.
Нормальная форма позволяет при одинаковой разрядности получать существенно больший диапазон представления чисел. Это приводит к уменьшению вероятности переполнения разрядной сетки в ячейках хранения числа.
Структура записи нормализованного числа в компьютере в формате с n разрядами имеет следующий вид:
n-1 n-2 3 2 1 0
… | … |
Знак мантиссы
Смещенный порядок Абсолютная величина мантиссы
Смещенный порядок применяется для однообразного отображения положительных и отрицательных порядков. Например, порядок, принимающий значения в диапазоне – 32 ÷ + 31, представляется смещенным порядком, значения которого меняются от 0 до 64.
Сложение и вычитание нормализованных чисел производится путем сложения и вычитания их мантисс. Перед выполнением действия производится выравнивание порядков чисел.
Пример. 1.Сложить числа 0.10111×2-1 и 0.11011×210. Для выравнивания порядков мантисса первого числа сдвигается на три разряда вправо:
0.00010111 × 210
+ 0.11011 × 210
0.11101111 × 210
2.Выполнить вычитание 0.10101×210 – 0.11101×21. Для выравнивания порядков мантисса второго числа сдвигается на один разряд вправо:
0.10101 ×210
- 0.011101 ×210
0.001101 ×210
Результат получен не нормализованный. Поэтому его нормализуют к виду 0.1101×20.
При умножении нормализованных чисел их порядки складываются, а мантиссы перемножаются.
При делении нормализованных чисел из порядка делимого вычитается порядок делителя, а мантисса делимого делится на мантиссу делителя. Затем в случае необходимости полученный результат нормализуется.
При выводе из компьютера десятичных чисел для отображении их в нормализованном виде применяются записи вида:
- для чисел одинарной точности: МЕ ±Р
- для чисел двойной точности: МD±Р,
где М – мантисса числа, Р – порядок числа, а латинские буквы E и D означаю, что число имеет одинарную и соответственно двойную точность.
Пример. Число одинарной точности: 0.1234567Е + 16. Число двойной точности: 0.123456789012345D – 65.
Лекция 3