Невнятно описал задачу в теме и тексте, в итоге Капитан предложил просто прикольную на его взгляд задачку. При четкой постановке он мне нарисовал гораздо более интересное:
Код:
<?php
function get_max($a, $b) {
$c = $a - $b;
$k = ($c >> 31) & 0x1;
return $a - $k * $c;
}
$a = 5;
$b = 10;
echo get_max($a, $b);
?>
В этом коде мы используем битовые операции для определения, какое из чисел $a и $b больше. Операция ($c >> 31) предназначена для вычисления старшего бита числа $c, который показывает, больше ли число $a или $b. Если число $a больше $b, то старший бит равен 0, иначе равен 1. Затем мы используем битовую операцию & для вычисления результата умножения $k и $c. Если число $a меньше $b, то $k равно 1, и результат умножения $k * $c будет равен $c, иначе результат умножения будет равен 0. В конечном итоге, результатом функции get_max является $a - $k * $c, что и есть наибольшее.