计算机中的数 对应的二进制第一位在有符号时,1为负,0为正
所以-1的首位是1
再者负数的存储是不用原码的,而是补码
所以-1的%u就是65535了(1111 1111 1111 1111)
无符号不是说把负号去掉,而是把最高位的1不看作负号。-1存储的形式为1111 1111 1111 1111(补码),最高位1不看作负号,计算得65535。
1的存储是0000 0000 0000 0001正数的补码和原码是一样的,不变
兄弟,你该补补基础了,x86里存储形式是补码,有符号数1的补码如果当作无符号数是1,-1的补码如果当作无符号数是65535
%u 无符号数
-1 -- 不是1,用它的补码
1的存储形式是0000 0000 0000 0001