#include<stdio.h>
int main()
{
int num=0,num1;
do
{
num++;
num1=num+1;
}while(num1>num);
printf("\nthe largest +ve value int can have is:%d",num);
printf("\nthe largest -ve value int can have is:%d",num1);
}
输出: 最大的 +ve 值 int 可以有:2147483647 最大的 -ve 值 int 可以有:-2147483648
问题是,即使我使用“unsigned int”而不是“int”,结果也是一样的。
最佳答案
那是因为您将其打印为整数 (%d
),而不是无符号整数 (%u
)。此外,您不需要循环来计算它 - 您可以使用 limits.h
:UINT_MAX
和 INT_MAX/INT_MIN
。
关于c - c编译器如何在内部表示无符号整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16190711/