Problemas aritméticos no firmados / firmados del libro de texto de la perspectiva de un programador

int x = random();
int y = random();

unsigned ux = (unsigned) x;
unsigned uy = (unsigned) y;

Para cada una de las siguientes expresiones C, debe indicar si la expresión siempre produce 1. Si siempre produce 1, describa los principios matemáticos subyacentes. De lo contrario, dé un ejemplo de argumentos que hagan que produzca 0.

A. (x<y) == (-x>-y) 
B. ((x+y)<<4) + y-x == 17*y+15*x
C. ~x+~y+1 == ~(x+y)
D. (ux-uy) == -(unsigned)(y-x)
E. ((x >> 2) << 2) <= x

Para estas preguntas, entendí que solo A podía producir 0 mientras que el resto siempre producía 1.

Sé que esto probablemente está mal y no estoy buscando respuestas directas, pero esperaba obtener algunos conocimientos / consejos generales sobre cómo abordar estos problemas.

Tengo un profesor realmente malo y he estado tratando de encontrar recursos en línea, pero realmente no sé por dónde empezar o qué buscar. Conozco los conceptos básicos de la aritmética del complemento sin signo / dos y el desplazamiento de bits, pero no sé cómo aplicarlo para encontrar casos contrarios para estos problemas.

Respuestas a la pregunta(1)

Su respuesta a la pregunta