Операция сравнения для целых чисел без знака и со знаком

Посмотрите этот фрагмент кода

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) в качестве разницы?

Ответы на вопрос(7)

Ваш ответ на вопрос