负数的八进制输出
#include<stdio.h>void main()
{
unsigned short a = 65535;
short int b = -2;
printf("a=%d,%o,%x,%u\n",a,a,a,a);
printf("b=%d,%o,%x,%u\n",b,b,b,b);
}
本人是用VC++6.0 32位 b的结果有点困惑,b的八进制为37777777776,我的思路是short为占2个字节,本因是16位,如果转换成八进制,16位三位换算成八进制的一位,怎么此题中的结果却比远远超出了我的思路中的结果呢?