Двоичные числа с фиксированной запятой.

 

В зависимости от местоположения фиксированной запятой (справа или слева от числа ) числа с фиксированной запятой делятся на целые и дробные. Дробные числа с фиксированной запятой как таковые в современных ЭВМ не используются ,а используются как часть числа с плавающей запятой в виде его мантиссы . Целые числа делятся на два типа: знаковые и без знаковые. Это разделение определяется способом интерпретации старшего разряда числа. В знаковых он интерпретируется как знак, а в без знаковых числах как старшая цифра числа. Во многих случаях интерпретация целого числа ,как знакового или без знакового возлагается на программиста, хотя на аппаратном уровне может поддерживаться тот или иной способ интерпретации. Примером подтверждающим это может использоваться парные команды умножения MUL,IMUL и деления DIV,IDIV в процессорах INTEL 80X86. Первая команда из этих пар интерпретирует операнды и результат как без знаковое целое ,а вторая как знаковое. Особенностью представления знаковых целых чисел является использование дополнительного кода. Под дополнительным кодом знакового n - разрядного целого числа понимается следующие выражение: ìx, при x³0

[x] дк = í

î2x -|x|, при x<0

Например n=6 число 30 представиться в виде [30] дк =011110

[-30] дк =1.000000

011110

В связи с тем ,что значение 2n не представимо в n - разрядном формате можно осуществлять вычитание из нуля. На этом принципе поддерживаются на аппаратном уровне операция изменения знака числа (NEG) с преобразованием его в дополнительный код. В терминологии по поводу прямого и дополнительного кода существуют некоторые разногласия. Авторы некоторых монографий считают что положительные числа представлены в прямом коде ,а отрицательные в дополнительном. Для общности представления ,как положительных ,так и отрицательных чисел в дополнительном коде правильнее считать что дополнительный код положительного числа совпадает с его прямым кодом. Для отрицательных чисел это несправедливо, так как прямой код отрицательного числа в знаковом разряде содержит единицу ,а в цифровых модуль числа. [-30]пр = 111110

Использование именно дополнительного кода в представлении знаковых целых чисел можно объяснить простотой реализации в этом коде операции сложения и вычитания которые являются самыми массовыми при решении задач научного комплекса. Что касается операций умножения и деления то при использовании дополнительного кода по сравнению с прямым усложняет алгоритм их реализации но тем не менее разработаны методы для выполнения этих операций в дополнительном коде.