Tag: 数字转换

为什么是0 <-0x80000000?

我有一个简单的程序下面: #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; } if(bal < INT32_MIN )始终为真的条件。 这怎么可能? 它工作正常,如果我改变macros: #define INT32_MIN (-2147483648L) 任何人都可以指出这个问题?