Представление чисел в компьютере
Числовые данные обрабатываются в компьютере в двоичной системе счисления. Числа хранятся в оперативной памяти в виде последовательностей нуляей и единиц, то есть в двоичном коде.
Представление чисел в формате с фиксированной запятой. Целые числа в компьютере хранятся в памяти в формате с фиксированной. запятой. В этом случае каждому разряду ячейки памяти соответствует всегда один и тот же разряд числа, а запятая находится справа после младшего разряда, то есть вне разрядной сетки.
Хранения целых неотрицательных чисел Для хранения целых неотрицательных чисел отводится одна ячейка памяти (8 бит). Например, число А 2 = будет хранится в ячейке памяти следующим образом:
Максимальное значение целого неототрицательного числа достигается в случае, когда во всех ячейках хранятся единицы. Для поразрядного представления оно будет равно: 2 n - 1.
Минимальное число соответствует восьми нуляям, хранящимся в восьми ячейках памяти, и равно нуляю, Максимальное число соответствует восьми единицам, хранящимся в ячейках памяти и равно; А = = = Диапазон изменения целых неотрицательных чисел от 0 до 255. Пример 2. Определить диапазон чисел, которые могут храниться в оперативной памяти в формате целое неотрицательное число.
Хранение целых чисел со знаком Для хранения целых чисел со знаком отводится две ячейки памяти (16 бит), причем старший (левый) разряд отводится под знак числа (если число положительное, то и опаковый разряд записывается 0, если число отрицательное, то записывается 1).
формат «знак-величина» Представление в компьютере положительных чисел с использованием формата «знак- величина» называется прямым, кодом числа. Например» число = будет представлено в 16-разрядном представлении следующим образом
При представлении целых чисел в n- разрядном представлении со знаком максимальное положительное число (с учетом выделения одного разряда на знак) равно; А = 2 n
Пример Определить максимальное положительное число, которое может хранится в оперативной памяти в формате целое число со знаком, А 10 = =
Дополнительный код Для представления отрицательных чисел используется дополнительный код. Дополнительный код позволяет заменить арифметическую операцию вычитания операцией сложения, что существенно упрощает работу процессора и увеличивает его быстродействие. Дополнительный код ототрицательного числа А, хранящегося в л ячейках, равен 2 n - |A|,
Дополнительный код представляет собой дополнение модуля ототрицательного числа А до 0, поэтому в n-разрядной компьютерной арифметике: 2 n - |А| + |А| = 0. Это равенство тождественно справедливо, так как в компьютерной поразрядной арифметике 2 n =0. Действительно, двоичная запись такого числа состоит из одной единицы и n нуляей, а в n- разрядную ячейку может уместиться только п младших разрядов, то есть п нуляей.
Пример. Записать дополнительный код ототрицательного числа для 16-разрядного компьютерного представления.Проведем вычисления в соответствии с определением дополнительного кода; 2 16 = = = Проведем проверку с использованием десятичной системы счисления. Дополнительный код в сумме с модулем от отрицательного числа равен , то есть дополнительный код дополняет модуль ототрицательного числа до 216 (до нуляя 16- разрядной компьютерной арифметики).
Для получения дополнительного кода ототрицательного числа можно использовать довольно простой алгоритм: 1. Модуль числа записать прямым кодом в п двоичных разрядах; 2. Получить обратный код числа, для этого значения всех бит инвертировать (все единицы заменить на нуляи и все нуляи заменить на единицы); 3. К полученному обратному коду прибавить единицу.
Пример Записать дополнительный код ототрицательного числа для 16- разрядного компьютерного представления с использованием алгоритма При n-разрядном представлении ототрицательного числа А дополнительным кодом старший разряд выделяется для хранения знака числа (единицы). В остальных разрядах записывается положительное число: 2 n-1 - |А|. + Прямой код | | Обратный код Инвертирование Прибавление единицы Дополнительный код
Следовательно, максимальное значение модуля числа А в n-разрядном представлении: равно: |А| < 2 n-1. Тогда минимальное отрицательное число равно: А = -2 n-1.
Пример Определить диапазон чисел, которые могут храниться в оперативной памяти в формате больших целых чисел со знаком (для хранения таких чисел отводится четыре ячейки памяти 32 бита Максимальное положительное целое число (с учетом выделения одного разряда на знак) равно: А = = Минимальное отрицательное целое число равно: A= =
Достоинствами представления чисел в формате с фиксированной запятой являются простота и наглядность представления чисел, а также простота алгоритмов реализации арифметических операций (вычитание благодаря использованию дополнительного кода для представления отрицательных чисел сводятся к сложению).
Пример Выполнить арифметическое действие в 16-разрядном компьютерном представлении Представим положительное число в прямом, а отрицательное число в дополнительном коде: + Десятич ное число Прямой код Обратный код Дополнительный код
Сложим прямой код положительного числа с дополнительным кодом ототрицательного числа. Получим результат в дополнительном коде:
Переведем полученный дополнительный код в десятичное число: 1) инвертируем дополнительный код: ; 2) прибавим к полученному коду 1 и получим модуль отрицательного числа; ) переведем в десятичное число и припишем знак отрицательного числа:
Недостатком представления чисел в формате с фиксированной запятой является конечный диапазон представления величин, недостаточный для решения математических, физических, экономических и других задач, в которых используются как очень малые, так и очень большие числа.
Формат с плавающей запятой. Представление чисел в формате с плавающей запятой. Вещественные числа (конечные и бесконечные десятичные дроби) хранятся и обрабатываются в компьютере в формате с плавающей запятой. В этом случае положение запятой в записи числа может изменяться. Формат чисел с плавающей запятой базируется на экспоненциальной форме записи, в которой может быть представлено любое число
. Так число А может быть представлено в виде: А = т х qn где т мантисса числа; q основание системы счисления; n порядок числа. Для однозначности представления чисел с плавающей запя той используется нормализованная форма при которой мантисса отвечает условию: 1/п < |т| < 1. Это означает, что мантисса должна быть правильной дробью и иметь после запятой цифру, отличную от нуля
Пример Преобразуйте десятичное число 888,888, записанное в естественной форме в экспоненциальную форму с нормализованной мантиссой. 888,888 = 0,
Пример. Определить максимальное число и его точность для формата чисел обычной точности, если для хранения порядка и его знака отводится 8 разрядов, а для хранения мантиссы и ее знака 24 разряда знак и порядок знак и мантисса
Пример Произвести сложение чисел 0,12 3 и 0,12 5 в формате с плавающей запятой Произведем выравнивание порядков и сложение мантисс: , При умножении чисел в формате с плавающей запятой порядки складываются, а мантиссы перемножаются. При делении из порядка делимого вычитается порядок делителя, а мантисса делимого делится на мантиссу делителя. +