定义unsigned int a=65535; %d输出-1,为什么呢?

2024-12-22 13:04:03
推荐回答(3个)
回答1:

65535的二进制就是1111111111111110

对于16位的数来说
1111111111111110是一个负数,它的补码=1111111111111110-2的16次方=-1

回答2:

如果你输出的时候用 %u ,输出结果就是65535了
p.s. 楼上讲的很对

回答3:

不能用%d 那是int专用 要用%u 才行。