Такие задачи лучше всего(проще и быстрее) решать через 16-ричную систему.
Гляди
123 = 7Bh = 0111 1011b = 001 111 011b = 173(8)
147 = 93h = 1001 0011b = 010 010 011b = 223(8)
Ну и так далее, всё просто! А для перевода 10->16 пользуйся стандартным алгоритмом, то есть последовательно дели на 16.
Например
123/16 = 7 (ост 11), значит 123 = 7Bh (Цифра B - это 11 в 10-тичной системе).
<h3>PascalABC.NET 3.4.2, сборка 1864 от 11.11.2018</h3><h3>Внимание! Если программа не работает, обновите версию!</h3>
begin
var a := ArrRandom(30, 0, 99);
a.Println.Sum.Println
end.
D =¬A *B +¬(A+B)+A
D=¬A*B+¬A*¬B +A
D=¬A(B+¬B) +A
D=¬A+A
D=1