CSAPP 2.21 为什么 INT_MIN=-INT_MAX-1

  • 来源于网络

-2147483648 会被当做是表达式,存给 int 的话实际表示的是 2147483648

考虑整个过程:

最开始是 2147483648: 1 << 31

然后取反加一,还是 1 << 31

如果把这个结果赋值给一个 int,就会当做是有符号数: -2147483648

然而如果赋值给一个 auto,再看它的 sizeof,就发现和 int 不一样了 :thinking:

参考:https://blog.csdn.net/le119126/article/details/45072969