logo
Информатика_ЗФ / 2013_Информатика УМО_легпром

Представление чисел в эвм

В цифровых ЭВМ числовая информация представляется в двух формах:

При представлении чисел с фиксированной точкой подразумевается, что положение точки, разделяющей число на целую и дробную части, неизменно для всех чисел. Эта форма наиболее проста, естественна, но имеет небольшой диапазон представления чисел и поэтому не всегда приемлема при вычислениях. В современных ЭВМ естественная форма используется, например, для представления целых чисел (дробная часть числа всегда отсутствует), денежных сумм (дробная часть всегда составляет четыре знака).

Представление с плавающей точкой любого числа Nв общем виде описывается следующей формулой:

N = M pk, (3.3)

где M– мантисса (дробная часть) числа;p– основание системы счисления;k – порядок (целое число), при этом положительный знак мантиссы и порядка может опускаться, а при указании порядка в десятичной системе принято использовать символЕ. Например, десятичное число с фиксированной точкой 123,45 может быть представлено в форме с плавающей точкой как 0,12345103, или, как это принято, 1,2345Е+02. Такая форма представления имеет огромный диапазон отображения чисел и является основной в современных ЭВМ.

Для представления положительных и отрицательных чисел в машинах используются специальные коды: прямой, обратныйидополнительный.Причём два последних позволяют заменить неудобную для ЭВМ операцию вычитания на операцию сложения с отрицательным числом; дополнительный код обеспечивает более быстрое выполнение операций при помощи сумматора, поэтому в ЭВМ применяется чаще именно он. Рассмотрим правила кодирования на примере целых чисел.

Для перевода числа в прямой кодзнак числа опускается, а в старший (знаковый) разряд ставится 0, если число положительное, и 1 – если число отрицательное. Младшие разряды кода являются двоичным представлением модуля числа. Оставшиеся разряды кода заполняются нулями. Отметим, что перевод положительных чисел в прямой, обратный и дополнительный код не изменяет изображения этих чисел (табл. 3).

Для перевода отрицательного числа в обратный коднеобходимо все разряды прямого кода, кроме знакового, инвертировать (заменить нули единицами, а единицы – нулями).

Для перевода отрицательного числа в дополнительный коднеобходимо к младшему разряду его обратного кода прибавить единицу.

Перевод отрицательного числа из дополнительного кода в прямой осуществляется в обратной последовательности: сначала вычитается единица, затем инвертируются разряды. Отметим, что положительное число (0 в старшем разряде) обратному переводу не подвергается, и имеет одинаковую запись как в прямом коде, так и в дополнительном.

Таблица 3