我对比了一下int,long,long long,unsigned 这个四种整型数据的不同的输出情况,有一下几个疑问:
以下为代码(新手上路,请海涵!使用编译器code blocks):
#include <stdio.h>
int main()
{
int a1, a2, a3, a4,a5,a6;
a1 = pow(2,32);
a2 = pow(2,32) - 2;
a3 = pow(2,31);
a4 = pow(2,31) - 2;
long int b1, b2, b3, b4;
b1 = pow(2,32);
b2 = pow(2,32) - 2;
b3 = pow(2,31);
b4 = pow(2,31) - 2;
long long int c1, c2, c3, c4, c5, c6;
c1 = pow(2,32);
c2 = pow(2,32) - 2;
c3 = pow(2,31);
c4 = pow(2,31) - 2;
c5 = pow(2,43);
c6 = pow(2,43)-1;
unsigned int d1, d2, d3, d4;
d1 = pow(2,32);
d2 = pow(2,32) - 2;
d3 = pow(2,31);
d4 = pow(2,31) - 2;
printf(" a1 = %d\n, a2 = %d\n, a3 = %d\n, a4 = %d\n",a1, a2, a3, a4);
printf("\n b1 = %d\n, b2 = %d\n, b3 = %d\n, b4 = %d\n",b1, b2, b3, b4);
printf("\n c1 = %d\n, c2 = %d\n, c3 = %d\n, c4 = %d\n, c5 = %d\n, c6 = %d\n",c1, c2, c3, c4, c5, c6);
printf("\n d1 = %d\n, d2 = %d\n, d3 = %d\n, d4 = %d\n",d1, d2, d3, d4);
printf("\n uc1 = %u\n, uc2 = %u\n, uc3 = %u\n, uc4 = %u\n, uc5 = %u\n",c1, c2, c3, c4, c5);
printf("\n ud1 = %u\n, ud2 = %u\n, ud3 = %u\n, ud4 = %u\n",d1, d2, d3, d4);
printf("\n ld1 = %ld\n, ld2 = %ld\n, lc1 = %ld\n, lc2 = %ld\n, lc5 = %ld\n, lc6 = %ld\n",d1, d2, c1, c2, c5);
return 0;
}
以下为输出结果: