6
ทำไมเป็น 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 )เป็นจริงเสมอ มันเป็นไปได้ยังไงกัน? มันทำงานได้ดีถ้าฉันเปลี่ยนแมโครเป็น: #define INT32_MIN (-2147483648L) ใครสามารถชี้ให้เห็นปัญหา