初学者碰到一个问题:看看一个输出,为何如此?
#include <stdio.h>
void main()
{
unsigned short i = -1;
short j = -1;
printf( "i=%x,j=%x\n ",i,j);
}
输出:
i=ffff,j=ffffffff
Press any key to continue
[解决办法]
-1 16bit 补码 11111111 11111111
-1 32bit 补码 11111111 11111111 11111111 1111111
机器内数值以补码存储