二进制为什么取反加一和减一取反是等价的?

已知:二进制任意一个比特位上的数(01)和自身按位取反的数(10)相加必然是1
假设 n = 10110100 ,n 按位取反01001011 取名为 x,可以得到 n + x = 11111111

结论1:不分正负时,n + x = 11111111 = 2^N-1,可以得到 n 和 x 互为按位取反的关系。
结论2:区分正负时,n + x = 11111111 = -1,可以得到 n 和 x 互为按位取反的关系。

由于
对数 n 取反加一(2^N - 1 - n) + 1 = 2^N - n(- 1 - n) + 1 = -n
对数 n 减一取反2^N - 1 - (n - 1) = 2^N - n-1 - (n - 1) = -n

可得 : 二进制里, 减一取反取反加一 等价。


 2进制    14原码:00000000000000000000000000001110
 2进制    14反码:00000000000000000000000000001110
 2进制    14补码:00000000000000000000000000001110

 2进制  按位取反:11111111111111111111111111110001
 2进制        +1:11111111111111111111111111110010

 2进制        -1:00000000000000000000000000001101
 2进制  按位取反:11111111111111111111111111110010
2进制   -14补码:11111111111111111111111111110010

2进制  按位取反:00000000000000000000000000001101
2进制        +1:00000000000000000000000000001110

2进制        -1:11111111111111111111111111110001
2进制  按位取反:00000000000000000000000000001110
  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值