Dlaczego 0 <-0x80000000?

Mam poniżej prosty program: #include <stdio.h> #define INT32_MIN (-0x80000000) int main(void) { long long bal = 0; if(bal < INT32_MIN ) { printf("Failed!!!"); } else { printf("Success!!!"); } return 0; } Warunek if(bal < INT32_MIN )jest zawsze spełniony. Jak to jest...