printf输出的不同整型数据
书上的源程序是
#include <stdio.h>
main()
{
short i;
i=-2;
printf("\n i: %d,%o,%x,%u\n",i,i,i,i);
}
书上的 答案是i:-2,177776,fffe,65534
可我运行的结果是i: -2,37777777776,fffffffe,4294567294
不同是我哪打错了还是书上出错了
请高手指教
书上的源程序是
#include <stdio.h>
main()
{
short i;
i=-2;
printf("\n i: %d,%o,%x,%u\n",i,i,i,i);
}
书上的 答案是i:-2,177776,fffe,65534
可我运行的结果是i: -2,37777777776,fffffffe,4294567294
不同是我哪打错了还是书上出错了
请高手指教
书上把short型认为是2个字节
-2 的二进制表示是 1 111 111 111 111 110
八进制是 177776
而你的机子上short型变量有4个字节
-2 的二进制表示是 11 111 111 111 111 111 111 111 111 111 110
八进制是 37777777776
其它的进制的道理是一样的