按位取非的计算详解

正数的取非

例:65

       128        64        32        16        8        4        2        1

        0            1          0          0         0        0        0        1          65的原码

        1            0          1          1         1        1        1        0          对65的二进制进行按位取反,不是求反码不要弄混淆

        1            1          0          0         0        0        0        1          对取反后的值再取反,符号位不变

        1            1          0          0         0        0        1        0          对取反后的数据进行加“1”操作     

1100  0010(二进制)=  -66(十进制)

~65=-66(数据已验证确认无误)

负数的取非

例:-66

       128        64        32        16        8        4        2        1

        1            1          0          0         0        0        1        0       -66的原码

        0            0          1          1         1        1        0        1        对-66的二进制进行按位取反,同理不是求负数的反码

        0            0          1          1         1        1        1        0        对取反后的二进制数据进行加“1”操作,符合位不变

        0            1          0          0         0        0        0        1         对加“1”后的数据进行取反

0100  0001(二进制)=65(十进制)

~(-66)=65(数据已确认无误)

注意:

正数和负数的加一操作正数的是先加一再取反,负数的先取反再加一

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值