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

时间:2013-04-24 11:24:19

标签: 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);
}

输出: 最大的+ ve值int可以有:2147483647 最大的-ve值int可以有:-2147483648

问题是即使我使用“unsigned int”而不是“int”,结果也是一样。

1 个答案:

答案 0 :(得分:4)

那是因为你将它打印为整数(%d),而不是无符号整数(%u)。此外,您不需要循环来计算 - 您可以使用limits.hUINT_MAXINT_MAX / INT_MIN