用于存储以下值的数据类型?
值:86400
码
int d[6];
unsigned int all;
d[0] = 8;
d[1] = 6;
d[2] = 4;
d[3] = 0;
d[4] = 0;
all = 10000*d[0] + 1000*d[1] + 100*d[2] + 10*d[3] + d[4];
printf("%u", all);如果我将这段代码复制到CodeBlocks,它就能正常工作。但是,在MPLAB C18编译器上,我会得到一个不同的结果。
CodeBlock输出:86400
:20864
你是怎么修好的?谢谢!
发布于 2013-05-07 01:58:00
类型int不能保证为32位,它可以是例如16位(即unsigned int的值从0到65535 )。这里的情况就是这样。这里需要使用long类型。
https://stackoverflow.com/questions/16410037
复制相似问题