我希望-2147483648能够容纳4个字节,因为它是用2的补码表示的。
我是不是遗漏了什么?
INT MIN: -2147483648
INT MAX: 2147483647
sizeof -2147483647: 4
sizeof 2147483647: 4
sizeof -2147483648: 8
sizeof 2147483648: 8
发布于 2018-05-28 17:49:00
-2147483648
是2147483648
,平台上的一个long
数字(因为它是小数*大于适合long
的INT_MAX
),被否定。C(和C预处理程序)中的数字与-
一元运算符分别解析。这就是为什么标准C库的glibc实现将INT_MIN
宏实现为(-INT_MAX - 1)
的原因。
* rules determining what type to use for an integer literal with or without a suffix因文字的基数不同而不同。
https://stackoverflow.com/questions/50571330
复制相似问题