我的印象是 INT_MAX 将打开一个 int 的所有 32 位。如果我否定它并将它与自身“和”它,我应该将所有 0 与所有 1 进行比较并返回错误。我错过了什么?
int x = INT_MAX;
x = ~x && INT_MAX;
printf("x = %d\n", x); /*Returns 1*/
x = 0;
x = ~x && INT_MAX;
printf("x = %d\n", x); /*Returns 1*/
编辑:哦,哇,我也在翻转符号位。使用 UNIT_MAX 给了我我需要的结果。谢谢大家!