65535的二进制就是1111111111111110对于16位的数来说1111111111111110是一个负数,它的补码=1111111111111110-2的16次方=-1
如果你输出的时候用 %u ,输出结果就是65535了p.s. 楼上讲的很对
不能用%d 那是int专用 要用%u 才行。