wojiaopengxigui 发表于 2015-3-16 13:20:04

输入的很大的数字原样输出后变了,为什么?我是初学者

int a;
scanf("%d",&a);
printf("%d",a);
其他的省略了,输入999999999时输出999999999
当输入9999999999(十位)时却输出其他的数字,这是为什么啊,用long a;也一样。。。。。
求指教

ANDES 发表于 2015-3-16 19:10:42

unsigned   int   0~4294967295   
int   2147483648~2147483647
unsigned long 0~4294967295
long   2147483648~2147483647
long long的最大值:9223372036854775807
long long的最小值:-9223372036854775808
unsigned long long的最大值:18446744073709551615

__int64的最大值:9223372036854775807
__int64的最小值:-9223372036854775808
unsigned __int64的最大值:18446744073709551615

很明显超出范围了。建议把各类型的取值范围和用法弄清楚。

wojiaopengxigui 发表于 2015-5-10 11:16:09

ANDES 发表于 2015-3-16 19:10
unsigned   int   0~4294967295   
int   2147483648~2147483647
unsigned long 0~4294967295


我是初学者,谢谢解答

Anny黄 发表于 2015-5-10 12:10:57

wojiaopengxigui 发表于 2015-5-10 11:16
我是初学者,谢谢解答

为啥会用到这样大的数值呢!我也是初学者,我觉得这些类型的取值范围大概知道就可以了。先熟练C语言的基本操作和学会活学活用就OK拉!
页: [1]
查看完整版本: 输入的很大的数字原样输出后变了,为什么?我是初学者