按位取反(符号:~)

按位取反运算

  • 正数的按位取反:+9
    • 原码:01001
    • 反码:01001
    • 补码:01001

(原码1)01001——>01001(反码)—–>01001(补码)———按位取反—>10110(变负数)—–>11001(反码,负数符号位不变) — +1操作—> 11010(原码2)
11010按位反:-10

  • 负数的按位取反:-9
    • 原码:11001
    • 反码:10110
    • 补码:10111 (负数的补码=反码+1)

负数的补码按位取反:10111—->01000(正数:补码=原码=反码)
01000按位反: 8

按位取反总结

  1. 按位取反是根据数的 补码 进行按位取反(计算机底层这样要求的),正数的原码、反码和补码都是一样(规律,三码归一);负数的反码是符号位不变,其它位取反,然后加1变成补码。
  2. 得到新的补码(0x0)后,新的补码进行 取其反码——>取其补码操作得到的是新的补码(0x0)的原码(规律)。根据原码就可以计算出数值。负数按位取反后变成正数,此时正数是补码,但是正数的补码和原码是一样的,所以直接计算得8。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值