Число в десятичном виде декодируем в двоичный путем деления числа на 2. Отрицательные числа выводятся в дополнительном коде. Дополнительный код образуется из прямого путем инверсии бит и прибавления единицы:
Пример: -5: 5 = 00000101, -5 = not(5)+1 = 11111010+1 = 11111011
Также в программе реализована обратная задача: преобразовать двоичное число в десятичный вид. Получаем 10-й вид путем возведения числа в степень.
Исходный код написан на языке C++