· заполнения поля данных (байт, слово, двойное слово, расширенное слово) полученным двоичным кодом, прижимая его к правому краю;
· заполнением левых пустых разрядов поля данных нулями;
· инвертирования всех разрядов поля данных (замена нулей на единицу, а единиц – на нули);
· сложения полученного числа с единицей.
Таким образом, если хранится число со знаком, то старший бит (левый) является знаковым. Знаковый бит равен 1, если число отрицательное, и - 0, если число положительное.
Если под число отводится один байт, то диапазон его возможных значений от 0 до 255 (число без знака) или от –128 до +127 (число со знаком). В последнем случае 7 разряд называется знаковым.
При размещении числа в формате с фиксированной точкой в одном слове диапазон его возможных значений от 0 до 65535 (число без знака) или от –32768 до +32767 (число со знаком). В последнем случае 15 разряд называется знаковым.
Примеры. Для записи числа 6310 в формате с фиксированной точкой в поле данных «один байт» (число со знаком) используется прямой код. Согласно ему преобразуем число в 2-ую ПСС: 6310 = 1111112 и далее
Номер разряда
Значение разряда
Теперь представим в этом же формате число -6310. Отрицательные числа записываются в дополнительном коде. Следовательно, сначала преобразуем модуль этого числа в двоичный восьмиразрядный код: |-6310| = 001111112. Затем выполним инверсию этого кода (получим 110000002) и добавим единицу в младший разряд. Результат будет иметь вид:
Номер разряда
Значение разряда
Если под число отводится слово, то все будет аналогично. Например, представим число 29310 в прямом коде: 29310 =1001001012 и далее:
Номер разряда
Значение разряда
Представление отрицательного числа -29610 в этом формате (в дополнительном коде) выполним поэтапно: |-296| = 0000000100101000 → 11111110110101112 (инверсный 16 - разрядный код). После добавления единицы в младший разряд окончательно получим
Номер разряда
Значение разряда
Возможно обратное преобразование числа из прямого или дополнительного кода в 10-ую ПСС (декодирование). Например, пусть имеется число в прямом коле в поле данных один байт: 101010102. Для преобразования его в 10-ую ПСС действуем по обычным правилам преобразования из 2-ой ПСС в 10-ую [4]: 101010102 = 27 + 25 + 23 + 21 = 17010 .
Другой пример, имеется число, записанное в дополнительном коде в поле данных одно слово 11111101110001112 . Чтобы преобразовать его к десятичному представлению следует выполнить те же действия, но в обратном порядке. Сначала инвертируем код и добавим к нему единицу: 11111101110001112 → 0000001000111000 + 1 = 10001110012 . Затем двоичный код преобразуем в десятичный по обычным правилам [4]: 29 + 25 + 24 + 23 + 20 = 56910 . Окончательно приписываем этому числу знак минус и получим: -56910 .
Арифметические операции над числами в формате с фиксированной точкой выполняются по обычным правилам для двоичных ПСС. При этом использование дополнительного кода позволяет заменить операцию вычитания операцией сложения.