Opérations bit à bit équivalentes à supérieures à l'opérateur

Je suis en train de travailler sur une fonction qui sera essentiellement de voir lequel des deux entiers est plus grande. Les paramètres qui sont passés de 2 à 32 bits entiers. Le truc, c'est les seuls opérateurs autorisés sont ! ~ | & << >> ^ (pas de casting, d'autres types de données en plus de signé int, *, /, -, etc..).

Mon idée pour l'instant est à ^ les deux fichiers binaires et de voir tous les postes de l'1 valeurs qu'ils ne partagent. Ce que je veux faire, c'est alors que prendre de la valeur et d'isoler le 1 le plus à gauche. Puis de voir qui d'entre eux a cette valeur. Cette valeur sera alors la plus grande.
(Dites-nous utiliser 8 bits entiers au lieu de 32 bits)
si les deux valeurs transmises ont été 01011011 et 01101001
J'ai utilisé ^ sur eux pour obtenir 00100010.
Je veux la faire 00100000 en d'autres termes 01xxxxxx-> 01000000
Puis & avec le premier numéro de
!! le résultat et de le retourner.
Si il est à 1, alors le premier # est plus grande.

Des idées sur la façon de 01xxxxxx->01000000 ou quoi que ce soit d'autre pour l'aider?

Oublié de noter: pas d'ifs, alors, fors etc...

source d'informationauteur Gekctek