В случае знаковых типов данных старший бит отвечает за знак числа (1 – отрицательное число, 0 – положительное число). Основной проблемой является представление отрицательных чисел. Для такого представления существует следующий алгоритм:
1. нахождение двоичного представления модуля числа,
2. нахождение двоичного дополнения числа,
3. прибавление единицы.
Рассмотрим алгоритм на примере. Представим число в знаковом однобайтном типе данных (тип char в языках С/С++):
1. Двоичное представление ,
2. Для нахождения двоичного представления инвертируем все биты числа ,
3. Прибавляем единицу .
После этого записываем полученные значения в соответствующие биты:
Рисунок 2.