Estimado,
Si bien las variables son 'int' (con signo), como todos los números se shiftean 4 lugares hacia la derecha, todos comienzan con 0 y por lo tanto la comparación que se termina utilizando es la de enteros sin signo, la cual se puede implementar como vos decís (recorriendo las cadenas bit a bit), y por tanto también sirve para comparar números en BCD.
Saludos,
Federico