Операция сравнения для целых чисел без знака и со знаком
Посмотрите этот фрагмент кода
int main()
{
unsigned int a = 1000;
int b = -1;
if (a>b) printf("A is BIG! %d\n", a-b);
else printf("a is SMALL! %d\n", a-b);
return 0;
}
Это дает вывод: А МАЛЕНЬКИЙ: 1001
Я не понимаю, что здесь происходит. Как здесь работает оператор>? Почему «а» меньше, чем «б»? Если оно действительно меньше, почему я получаю положительное число (1001) в качестве разницы?