unsigned short j =-1;
printf("%u",j);
输出结果65535
因为%d是十进制整型(int),int型数据占16byte 第一位是符号位,后15为是数值位;
unsigned也占16byte,但是没有符号位,全部是数值位;
unsigned u=-1 即1000 0000 0000 0001
%u 是unsigned int,是无符号整型
首先看-1在计算机中是如何存储的,
【-1】原码=1000 0000 0000 0001
【-1】反码=1111 1111 1111 1110
【-1】补码=1111 1111 1111 1111