Unsigned Int 的最大值是 -1
Maximum Value for Unsigned Int is it -1
我试图找出无符号数据类型的最小值和最大值。我知道最小无符号值为 0,最大值为 (2^n)-1。但是,当我尝试 运行 我的程序时( 我不能 post 我的代码,但你可以参考 this),我不断得到 - 1 为最大值。有人可以向我解释为什么吗?另外,UINT_MAX 是 4294967295,而 ULLONG_MAX 是 4294967295。但是,unsigned int 的最大值应该是 65535,而 unsigned long long int 应该是 +18,446,744,073,709,551,615.Why是输出不同吗?
您使用什么格式说明符来打印这些值?
此类错误大多是由于格式说明符错误引起的。
#include <stdio.h>
#include <limits.h>
int main()
{
printf("%u", UINT_MAX); // This will print 4294967295 (system dependent)
printf("%d", UINT_MAX); // This will print -1
return 0;
}
我试图找出无符号数据类型的最小值和最大值。我知道最小无符号值为 0,最大值为 (2^n)-1。但是,当我尝试 运行 我的程序时( 我不能 post 我的代码,但你可以参考 this),我不断得到 - 1 为最大值。有人可以向我解释为什么吗?另外,UINT_MAX 是 4294967295,而 ULLONG_MAX 是 4294967295。但是,unsigned int 的最大值应该是 65535,而 unsigned long long int 应该是 +18,446,744,073,709,551,615.Why是输出不同吗?
您使用什么格式说明符来打印这些值? 此类错误大多是由于格式说明符错误引起的。
#include <stdio.h>
#include <limits.h>
int main()
{
printf("%u", UINT_MAX); // This will print 4294967295 (system dependent)
printf("%d", UINT_MAX); // This will print -1
return 0;
}