Знайти мінімум з двох позитивних цілих чисел без операцій порівняння

Одна дуже шанована компанія просить бажаючих в ній працювати вирішити перед співбесідою ряд завдань. Ось одна з них.

Додатковий код це використовуваний в сучасних комп'ютерах спосіб кодування цілих чисел, при якому невід'ємне число X представляється «як є» а негативне число X як

(| X | -1). Таким чином, максимальне невід'ємне число, яке може бути представлено 32-ма розрядами додаткового коду, є 2 31 -1. Для будь-якого невід'ємного числа в додатковому коді старший розряд дорівнює нулю, а для будь-якого негативного - одиниці.

Знайдіть метод пошуку мінімуму з двох позитивних 32-розрядних цілих чисел представлених в додатковому коді що не використовує операцій порівняння і умовних переходів.

Природно цікавий метод, який використовує мінімальне число операцій і не використовує ніяких допоміжних таблиць. Ви можете користуватися наступними 32-розрядними операціями:

еквівалентна
операція мови Сі

складання в додатковому коді

віднімання в додатковому коді

множення в додатковому коді

знакова поділ в додатковому коді

беззнаковое розподіл в додатковому коді

логічні операції з інверсією другого аргументу

арифметичний зрушення вправо (з поширенням знакового розряду)

логічний зрушення вправо (з поширенням нуля)

Відомий спосіб знаходження мінімуму за допомогою 4 операцій, але звичайно Ви можете дати відповідь і в тому випадку якщо отримали більшу кількість операцій.

Цікаве завдання. Нижче в рамці приведено її рішення 5 операціями на Сі (4 операціями не подужав). Оскільки не цікаво вирішувати завдання, бачачи перед собою готове рішення, то це рішення заховано. Тобто текст записаний кольором фону. Якщо хочете текст побачити, виділіть її мишкою.