Представление чисел в компьютере
Числовые данные обрабатываются в компьютере в двоичной системе счисления. Числа., хранятся в оперативной памяти в виде последовательностей нулей и единиц;, то есть в двоичном коде. 1. Представление чисел в формате с фиксированной занятой. Целые числа в компьютере хранятся в памяти в формате с фиксированной запятой. В атом случае каждому разряду ячейки памяти соответствует разрядной сетки. Максимальное значение целого неотрицательного числа достигается в случае, когда во всех ячейках хранятся? единицы. Для n-разрядного представления они будет равно: Пример. Определить диапазон, чисел, которые могут храниться в оперативной памяти в формате; целое неотрицательное число. Минимальное число соответствует восьми нулям, хранящимся в восьми ячейках памяти, и равно нулю. Максимальное число соответствует восьми единицам, хранящимся в ячейках памяти и равно A=1*27+1*26+1*25+1*24+1*23+1*22+1*21+1*20=25510 Диапазон изменения целых неотрицательных чисел от 0 до 255. Для хранения целых чисел со знаком отводится две ячейки памяти (16 бит), причем старший (левый) разряд отводится под знак числа (если число положительное, то в знаковый разряд записывается 0, если число отрицательное, то записывается 1). Представление в компьютере положительных чисел с использованием формата «знак-величина» называется прямым кодом При представлении целых чисел в поразрядном представлении со знаком максимальное положительное число (с учетом выделения одного разряда на знак равно Пример. Определить максимальное положительное число, которое может хранится в оперативной памяти в формате целое число со.знаком А10 = 215 - 1= 32767. Для представления отрицательных чисел используется дополнительный код. Дополнительный код позволяет заменить арифметическую операцию вычитания операцией сложения что существенно, упрощает работу процессора и увеличивает его быстродействие. Дополнительный код отрицательного числа А, хранящегося в ячейках, равен 2n-[А|. Дополнительный код представляет собой дополнение модуля отрицательного числа -А до 0, поэтому в n-разрядной компьютерной арифметике: 2n-[А|.+[А|=0 Это равенство тождественно справедливо, так как в компьютерной n-разрядной арифметике 2n =0 Действительно, двоичная запись такого числа состоит из одной единицы и п нулей, а в n-разрядную ячейку может уместиться только n младших разрядов, то есть n нулей. Проведем проверку с использованием десятичной системы счисления. Дополнительный код 63§34ю в сумме/с модулем отрицательного числа 200210 равен 6553610), то есть дополнительный код дополняет модуль отрицательного числа до 216 (до нуля 16-разрядной компьютерной арифметики). Для получения дополнительного кода отрицательного числа можно использовать довольно простой алгоритм: 1. Модуль числа записать прямым кодом в п двоичных разрядах; 2. Получить обратный код числа для этого значения всех бит инвертировать (все единицы заменить на нули и все нули заменить на единицы);, 3. К полученному обратному коду прибавить единицу. При n-разрядном представлении отрицательного числа А дополнительным кодом старший разряд выделяется для хранения знака числа (единицы). В остальных разрядах записывается положительное число: Чтобы число было положительным, должно •выполняться условие: Следовательно, максимальное значение модуля числа А в n-разрядном представлении Тогда минимальное отрицательное число равно: Пример. Определить диапазон чисел, которые могут храниться в оперативной памяти в формате больших целых чисел со знаком (для хранения таких чисел отводится четыре ячейки памяти — 32 бита). Максимальное положительное целое число (с учетом выделения Одного разряда на знак) равно: Достоинствами представления чисел в формате с фиксированной запятой являются простота и наглядность представления чисел, а также простота алгоритмов реализации арифметических операций (вычитание благодаря использованию дополнительного кода для представления отрицательных; чисел сводится к сложению). Сложим прямой код положительного числа с дополнительным кодом отрицательного числа. Получим результат в дополнительном коде: Недостатком представления чисел в формате с фиксированной запятой является конечный диапазон представления величин, недостаточный для решения математических, физических, экономических и других задач, в которых используются как очень малые, так и очень большие числа.
2. Представление чисел в формате с плавающей запятой. Вещественные числа (конечные и бесконечные десятичные дроби) хранятся и обрабатываются в компьютере в формате с плавающей запятой. В этом случае положение запятой в записи числа может изменяться. Формат чисел с плавающей запятой базируется на экспоненциальной форме записи, в которой может бить представлено любое число. Так, Число А может быть представлено в виде: Для однозначности представления чисел с плавающей запятой используется нормализованная форма, при которой мантисса отвечает условию: Это означает, что мантисса Должна быть правильной дробью и иметь после запятой цифру, отличную от нуля. Число в форме с плавающей запятой занимает в памяти компьютера четыре (число обычной точности) или восемь байтов (число двойной точности). При записи числа с плавающей запятой выделяются разряда! для Хранения знака мантиссы, знака порядка, порядка и мантиссы. Диапазон изменения чисел определяется количеством разрядов, отведенных для хранения порядка числа, а точность (количество значащих цифр) определяется количеством разрядов, отведенных для хранения 'мантиссы. Точность вычислении определяется количеством разрядов, отведенных для хранения мантиссы чисел. Максимальное значение положительной мантиссы равно: При сложении и вычитании чисел в формате с плавающей запятой сначала производится подготовительная операция выравнивания порядков. Порядок меньшего (по модулю) числа увеличивается до величины порядка большего по модуля числа. Для того чтобы величина числа не изменилась, мантисса уменьшается в такое же количество раз (сдвигается в ячейке памяти вправо на количество разрядов, равное разности порядков чисел). После выполнения операции выравнивания одинаковые разряды чисел оказываются расположенными в одних и тех же разрядах ячеек памяти. Теперь операций сложения и вычитания чисел сводятся к сложению или вычитанию мантисс. После выполнения арифметической операции для приведения полученного числа к стандартному формату с плавающей запятой производится нормализация, т.е. мантисса сдвигается вправо или влево так, чтобы ее значащая цифра попала в первый разряд после запятой. Приумножении чисел в формате с плавающей запятой порядки складываются, а мантиссы перемножаются»: При делении из порядка делимого вычитается порядок делителя, а мантисса делимого делится на мантиссу делителя.
|