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
本文探讨了无符号整型变量unsignedshortj=-1的内存表示,并解释了为什么使用%u会输出65535。通过深入剖析计算机原码、反码和补码的概念,揭示了符号扩展的过程。
4958

被折叠的 条评论
为什么被折叠?



