C++ Primer 说:
我们可以独立指定签名者和整数文字的大小。如果后缀包含 U,则文字具有无符号类型,因此带有 U 后缀的十进制、八进制或十六进制文字具有适合文字值的最小类型 unsigned int、unsigned long 或 unsigned long long
当一个人宣布
int i = -12U;
我理解的方式是 -12 被转换为unsigned
自身的版本(4294967284
),然后分配给int
,由于翻转,结果是一个非常大的正数。
这似乎不会发生。请问我错过了什么?
cout << i << endl; // -12