按位取反(~),数据输出。

【原码(按位取反)-->反码(+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(补码)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值