我在以下代码中遇到了这种意外的输出,其中我正在验证当所有位都设置为 1 时,short 和 int 类型的无符号形式的最大值(以十进制形式表示)。
#include <stdio.h>
int main()
{
unsigned int n1 = 0xFFFFFFFF;
unsigned short n2 = 0xFFFF;
printf("\nMax int = %+d", n1);
printf("\nMax short = %+d", n2);
return 0;
}
我得到的输出是(使用 Visual Studio 2017 C/C++ 编译器编译):
Max int = -1
Max short = +65535
沿着 unsigned Short 的思路,我期望 unsigned int 的最大值为 +4294967295。为什么不是这样呢?
你需要使用%u
对于格式说明符unsigned
type.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)