Представление чисел в компьютере автор: Хайманова Т.Я. май 2008 г.
Представление чисел в компьютере Числовые данные обрабатываются в компьютере в двоичной системе счисления. Числа хранятся в оперативной памяти в виде последовательностей нулей и единиц, т.е. в двоичном коде. Числа могут быть представлены в компьютере в одном из двух форматов: в формате с фиксированной запятой (целые числа). в формате с плавающей запятой (вещественные числа, т.е. конечные и бесконечные десятичные дроби).
Представление чисел в формате с фиксированной запятой Для хранения целых неотрицательных чисел отводится одна ячейка памяти (8 битов). Например, число A 2 = будет хранится в ячейке памяти следующим образом: Максимальное значение целого неотрицательного числа достигается в случае, когда во всех ячейках хранятся единицы. Для n-разрядного представления оно будет равно: = = = Диапазон изменения целых неотрицательных чисел от 0 до 255.
Представление чисел в формате с фиксированной запятой Для хранения целых чисел со знаком отводится две ячейки памяти (16 битов), причем старший (левый) разряд отводится под знак числа (если число положительное, то в знаковый разряд записывается 0, если число отрицательное записывается 1). Представление в компьютере положительных чисел с использованием формата «знак-величина» называется прямым кодом числа. Например, число = будет представлено в 16-ти разрядном представлении следующим образом: A 10 = 2 15 – 1 = – максимальное положительное число
Представление чисел в формате с фиксированной запятой Для представления отрицательных чисел используется дополнительный код. Дополнительный код позволяет заменить арифметическую операцию вычитания операцией сложения, что существенно упрощает работу процессора и увеличивает его быстродействие. Для получения дополнительного кода отрицательного числа можно использовать довольно простой алгоритм: 1. Модуль числа записать прямым кодом в n двоичных разрядах; 2. Получить обратный код числа, для этого значения всех бит инвертировать (все единицы заменить на нули и все нули заменить на единицы); 3. К полученному обратному коду прибавить единицу. Прямой код| | Обратный кодинвертирование прибавление единицы Дополнительный код
Пример. Выполнить арифметическое действие в 16-ти разрядном компьютерном представлении. Представим положительное число в прямом, а отрицательное число в дополнительном коде: Сложим прямой код положительного числа с дополнительным кодом отрицательного числа. Получим результат в дополнительном коде. Переведем полученный дополнительный код в десятичное число: Дес. число Прямой код Обратный код Дополнительный код ) Инвертируем дополнительный код: ) Прибавим к полученному коду 1 и получим модуль отрицательного числа: ) Переведем в десятичное число и припишем знак отрицательного числа: = = 2000
Представление чисел в формате с плавающей запятой Вещественные числа (конечные и бесконечные десятичные дроби) хранятся и обрабатываются в компьютере в формате с плавающей запятой. В этом случае положение запятой в записи числа может изменяться. Формат чисел с плавающей запятой базируется на экспоненциальной форме записи: A = m*q n, где m – мантисса числа q – основание системы счисления, n – порядок числа. Мантисса должна быть правильной дробью и иметь после запятой цифру, отличную от нуля. Пример. Преобразовать десятичное число 888,888, записанное в естественной форме, в экспоненциальную форму с нормализованной мантиссой. 888,888 = 0,888888×10 3 Нормализованная мантисса m = 0,888888, порядок n = 3.
Представление чисел в формате с плавающей запятой Число в форме с плавающей запятой занимает в памяти компьютера четыре (число обычной точности) или восемь байт (число двойной точности). При записи числа с плавающей запятой выделяются разряды для хранения знака мантиссы, знака порядка, порядка и мантиссы знак и порядок знаки мантисса Максимальное значение порядка числа составит = Максимальное значение числа обычной точности составит: = 1, ×1038 При сложении и вычитании чисел в формате с плавающей запятой сначала производится подготовительная операция выравнивания порядков. Пример. Произвести сложение чисел 0,1×2 3 и 0,1×2 5 в формате с плавающей запятой. 0,1× ,1×2 5 = 0,001× ,100×2 5 = 0,101×2 5 При умножении чисел в формате с плавающей запятой порядки складываются, а мантиссы перемножаются. При делении из порядка делимого вычитается порядок делителя, а мантисса делимого делится на мантиссу делителя.