int k=-1;printf("%u",k)为啥输出的是65535
-1的原码是 1000 0000 0000 0001 计算机中存放数据用他的补码数表示也就是 1111 1111 1111 1111,转换为无符号数是就是直接将他变成十进制的整数就是65535
-1, 在内存中按补码存储为二进制的1111 1111 1111 1111.所以,按无符号数显示就是65535.