【原码(按位取反)-->反码(+1)-->补码】
%d以补码还原的方式输【补码(-1)-->反码(按位取反)-->原码】
a=0x03转为十进制为:3
3转为二进制为: 0000 0011
按位取反~(补码): 1111 1100(最高位为1,所以是负数。且进行下面的操作最高位不变)
补码 -1——(反码):1111 1011
反码(按位取反)—原码:1000 0100 //-4
b=0x12转为十进制为:18
18转为二进制为:0001 0010
按位取反~(补码): 1110 1101
补码 -1——(反码):1110 1100
反码(按位取反)—原码:1001 0011 //-19
%u无符号输出,直接以补码的方式输出,%u输出的时候,值区域范围:0-4294967295(有符号转为无符号的时候)
%u输出是四字节32位,补码:1110 1101 只有8位前面空缺的全部补1
或者也可以用原码推
0000 0000 0000 0000 0000 0000 0001 0011(原码)
1111 1111 1111 1111 1111 1111 1110 1100(反码)
1111 1111 1111 1111 1111 1111 1111 1101(补码)