c编译器如何在内部表示无符号整数


#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);
}

输出:int最大的+ve值为:2147483647int所能拥有的最大-ve值:-2147483648

问题是,即使我用"unsigned int"代替"int",结果也是一样的。

这是因为您将其打印为整数(%d),而不是无符号整数(%u)。同样,您不需要一个循环来计算这个—您可以使用limits.h: UINT_MAXINT_MAX / INT_MIN

最新更新